什么应该在默认的git配置文件中?

she*_*non 5 git

有一个令人眼花缭乱的选项可以通过设置git config,这只是记录的选项.在所有这些选项中,每个开发人员应该在他们的盒子上设置哪些(如user.email)?在常见情况下应该设置哪些最常见的(如core.autocrlf=input在Windows上)?但请远离宗教争论(比如唯一可接受的core.whitespace存在方式tab-in-indent)

Gui*_*ntz 7

您的全局git配置(〜/ .gitconfig)应该包含适用于所有存储库的设置.主要之类的东西user.name,user.email,core.editor,merge,和diff应该相当一致的设置.话虽这么说,我也很喜欢启用color,core.pager,rerere,rebase.autosquash和别名转换.

[color]
    filemode = false
    diff = auto
    status = auto
    branch = auto
    pager = true
[alias]
    b = branch
    ci = commit
    co = checkout
    cob = checkout -b
    d = diff
    l = log
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
    lga = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --branches
    st = status
    fixup = !sh -c 'git commit -a -m \"fixup! $(git log -1 --format='%s' $@)\"' -
    squash = !sh -c 'git commit -a -m \"squash! $(git log -1 --format='%s' $@)\"' -
    ri = rebase --interactive
    rc = rebase --continue
    pr = push gerrit HEAD:refs/for/master
    mt = mergetool
[user]
    email = REDACTED
    name = Matt Henkel
[core]
    pager = less -FRSX
    excludes = ~/.gitexcludes
    editor = vim
[rerere]
    enabled = true
    autoupdate = true
[rebase]
    autosquash = true
[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    keepBackup = false
    trustExitCode = false
[diff]
    tool = kdiff3
Run Code Online (Sandbox Code Playgroud)

  • 而不是"告诉我你的,我会告诉你我的"你觉得你能解释和证明每件事吗?这似乎是一个充满个性化的很长的列表.哪些应该进入"每个"配置? (10认同)

Rob*_*Dam 6

以下是几个最常见配置设置的带注释列表。当然,每个人的环境/语言/操作系统/git 工作流程都不同,因此您可能需要对此进行一些调整,但这些是一些最常见的配置变量。

[user]
    # these are about the most basic and should pretty much always exist
    email = your-email@example.com
    name = Your Name
[core]
    # if you use windows
    #autocrlf = true

    # use aggressive compression
    # can make your repo smaller but can also be slow
    compression = 9

    # lets you define a global .gitignore for all those 
    # *.swp, *~, *.o, etc things that you're frequently 
    # sticking in .gitignore
    excludesfile = ~/.gitignore_global

    # tells git to ignore file permission changes
    filemode = false

    # lets you tweak the default pager
    # see `man less` for the meaning of these flags
    pager = 'less -FRSX'

    # probably not a good default for most projects, 
    # but you should uncomment with something based on your needs
    #whitespace = tab-in-indent

[color]
    # this turns on default colors for many commands
    # or you can customize specific colors per command (see [3] for example)
    ui = auto

[rerere]
    # google `git rerere`, basically git remembers your
    # partial merge choices and replays them next time
    enabled = true
    autoupdate = true

[push]
    # lets you say just `git push origin` to push the current branch
    default = current 

[alias]
    # this is the most subjective section 

    # aliases are useful if you either frequently typo certain words
    # or else if you are used to another VC like cvs or svn
    co = checkout
    ci = commit
    st = status
    br = branch -av
    brdel = branch -D

    # Show all of my configured aliases
    aliases = !git config --list | grep 'alias\\.' | sed 's/alias\\.\\([^=]*\\)=\\(.*\\)/\\1\\ \t => \\2/' | sort

    # pretty much everybody has their favorite log format view
    # you can find dozens of variations with a quick google
    # here are couple of the most common (the first is my favorite)
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
    hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Run Code Online (Sandbox Code Playgroud)

答案合并自多个来源:

  1. https://githowto.com/aliases
  2. https://www.javacodegeeks.com/2013/06/git-configuration-options-you-cant-miss.html
  3. http://michaelwales.com/articles/make-gitconfig-work-for-you/#colored-output
  4. https://wildlyinaccurate.com/useful-git-configuration-items/