Ένα καλό αρχείο ~/.gitconfig
μπορεί να κάνει τη ζωή ενός προγραμματιστή λίγο πιο εύκολη στην καθημερινότητά του. Παρακάτω θα βρείτε ένα .gitconfig
που εν συντομία κάνει τα εξής:
- Ορίζει το όνομα και email που χρησιμοποιείται σε κάθε commit
- Αλλάζει τα χρώματα στις διάφορες εντολές του git
- Ενεργοποιεί τη χρήση PGP για την υπογραφή των commits (περισσότερα εδώ)
- Προκαθορίζει το όνομα του branch όποτε δημιουργείται ένα νέο repository με
git init
- Επιλέγει τη χρήση της cache για την προσωρινή αποθήκευση συνθηματικών
- Απενεργοποιεί τα μηνύματα
old mode 100755 new mode 100644
- Ορίζει διαφορετικό φορμάτ για τις ημερομηνίες στα logs
- Ορίζει aliases για τις πιο κοινές εντολές του git ώστε όταν πληκτρολογείτε λάθος, να μην βγάζει σφάλμα αλλά να εκτελεί την εντολή
- Ορίζει τέλος κάποια χρήσιμα aliases για καλύτερα και ομορφότερα git logs
Αντιγράψτε το όλο ή κομμάτια του στο δικό σας ~/.gitconfig
αρχείο.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
[user] name = John Doe email = example@example.com # --- [color] # Enable colors (enabled by default since Git 1.8.4) ui = true [color "branch"] current = "#99CC99" local = "#DADADA" remote = "#F0C674" [color "status"] header = "#999999" added = "#99CC99" changed = "#F2777A" untracked = "#FFCC66" branch = "#2D2D2D" "#6699CC" # Because the phrase "Detached HEAD" isn't unnerving enough nobranch = bold ul blink "#F99157" [color "diff"] meta = "#515151" func = "#CC99CC" frag = "#66CCCC" context = "#999999" old = "#F2777A" "#393939" new = "#BEF2BE" "#515151" # --- # Include GitHub-specific configuration if the repository is hosted on GitHub [includeIf "hasconfig:remote.*.url:git@github.com:**/**"] path = ~/.gitconfig_github [includeIf "hasconfig:remote.*.url:https://github.com/**/**"] path = ~/.gitconfig_github # Include GitLab-specific configuration if the repository is hosted on GitHub [includeIf "hasconfig:remote.*.url:git@gitlab.com:**/**"] path = ~/.gitconfig_gitlab [includeIf "hasconfig:remote.*.url:https://gitlab.com/**/**"] path = ~/.gitconfig_gitlab # --- [init] # Set the default branch when initiating a new git repository defaultBranch = master [credential] # Use 'cache' to temporarily store credentials in memory for a specific duration # instead of 'store' that saves credentials as pure text helper = cache --timeout=7200 [core] # Disable file mode change notification (the "old mode 100755 new mode 100644" messages) filemode = false editor = nano [log] # Custom date format date = format:%a %d %b %Y, %H:%M:%S, %z [commit] # Sign commits with GPG gpgsign = true [gpg] # Specify the default GPG key ID signingkey = YOUR_GPG_KEY_ID # Specify whethere to sign commits with OpenPHP or SSH format = openpgp [alias] # Status command aliases st = status stauts = status statsu = status statu = status stats = status tatus = status sttaus = status stat = status sta = status staut = status staus = status tsatus = status satus = status sttus = status tatus = status # Pull command aliases pl = pull pul = pull plul = pull pllu = pull # Push command aliases ps = push pshu = push puhs = push pus = push # Diff command aliases df = diff dif = diff dff = diff dfif = diff dffi = diff dfii = diff # Commit command aliases comit = commit ocmmit = commit commti = commit # Checκout command aliases checkou = checkout checkot = checkout checkut = checkout # Log command aliases lg = log lo = log lgo = log # --- # Prettier log command aliases # show modified files, number of lines added/removed and summary logstat = log --stat # show one commit per line, the SHA and commit message logoneline = log --oneline # show one commit per line, the SHA, the commit message and the date logonelinedates = log --pretty=format:'%C(auto)%h%C(blue) %<|(19)%as%C(auto)%d %s' # show modified files, lines added/removed in these file logpatch = log --patch # view git log as a graph loggraph = log --graph # view git log as a graph with one SHA and commit message per line loggraphoneline = log --graph --oneline # show log as graph, one line per commit etc etc logall = log --graph --oneline --decorate --all # similar to the above but with added dates logpretty = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit # show one commit per line, with date, commit message and author email logdatesauthors = log --format='%C(yellow)%h%Creset %aI %Cgreen%s%Creset %aE' |
Αποθηκεύστε τις αλλαγές στο αρχείο ~/.gitconfig
και επιβεβαιώστε τις με την εντολή:
1 |
git config --list --show-origin |
Τα περιεχόμενα των αρχείων ~/.gitconfig_github
και ~/.gitconfig_gitlab
είναι όπως παρακάτω:
1 2 3 4 5 6 |
[user] email = my_username@users.noreply.github_or_gitlab.com signingkey = 1234ABCD5678EFGH [commit] gpgsign = true |
Περισσότερες πληροφορίες για τα 2 αυτά αρχεία, θα βρείτε στο άρθρο Σετάρισμα SSH και GPG Keys για GitHub και GitLab.
Σημείωση: τα χρώματα, με κάποιες αλλαγές, προέρχονται από εδώ.