Что должно идти в файле конфигурации git по умолчанию? - PullRequest
5 голосов
/ 29 июня 2011

Существует множество параметров, которые можно установить с помощью git config, и это только документированные .Из всех этих опций, какие из них должен установить каждый разработчик (например, user.email)?И какие из них наиболее распространены в обычных ситуациях (например, core.autocrlf=input в Windows)?Но, пожалуйста, держитесь подальше от религиозных аргументов (например, единственное допустимое значение: core.whitespace * tab-in-indent)

Ответы [ 2 ]

7 голосов
/ 29 июня 2011

Ваша глобальная конфигурация 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
1 голос
/ 26 января 2015

Вот аннотированный список нескольких наиболее распространенных настроек конфигурации. Конечно, рабочий процесс среды / языка / os / 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'

    # just because you said not to ;)
    # probably not a good default for most projects, 
    # but you should set something here 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]
    # let's 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

Ответ объединен из нескольких источников:

  1. http://githowto.com/aliases
  2. http://www.javacodegeeks.com/2013/06/git-configuration-options-you-cant-miss.html
  3. http://michaelwales.com/articles/make-gitconfig-work-for-you/
  4. http://wildlyinaccurate.com/useful-git-configuration-items/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...