Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Git配置文件:最佳实践_Windows_Git - Fatal编程技术网

Windows Git配置文件:最佳实践

Windows Git配置文件:最佳实践,windows,git,Windows,Git,我设法让Git与Github一起运行,现在(一年后),我想教大家如何做到这一点。我从中学到了很多,但即使有了答案,有些事情仍然不清楚。请道歉,如果我不是从电话里得到的 问题: file:"C:\\ProgramData/Git/config" core.symlinks=false # ... see .git/config file:"C:\\ProgramData/Git/config" core.autocrlf=true file:"C:\\ProgramDat

我设法让Git与Github一起运行,现在(一年后),我想教大家如何做到这一点。我从中学到了很多,但即使有了答案,有些事情仍然不清楚。请道歉,如果我不是从电话里得到的

问题

file:"C:\\ProgramData/Git/config"       core.symlinks=false # ... see .git/config 
file:"C:\\ProgramData/Git/config"       core.autocrlf=true
file:"C:\\ProgramData/Git/config"       core.fscache=true
file:"C:\\ProgramData/Git/config"       color.diff=auto
file:"C:\\ProgramData/Git/config"       color.status=auto
file:"C:\\ProgramData/Git/config"       color.branch=auto
file:"C:\\ProgramData/Git/config"       color.interactive=true
file:"C:\\ProgramData/Git/config"       help.format=html
file:"C:\\ProgramData/Git/config"       http.sslcainfo=C:/Git/mingw64/ssl/certs/ca-bundle.crt
file:"C:\\ProgramData/Git/config"       diff.astextplain.textconv=astextplain
file:"C:\\ProgramData/Git/config"       rebase.autosquash=true

file:"C:\\Git\\mingw64/etc/gitconfig"   credential.helper=manager # ... see file:C:/Users/myname/.gitconfig

file:C:/Users/myname/.gitconfig    filter.lfs.clean=git-lfs clean %f
file:C:/Users/myname/.gitconfig    filter.lfs.smudge=git-lfs smudge %f
file:C:/Users/myname/.gitconfig    filter.lfs.required=true
file:C:/Users/myname/.gitconfig    user.name=My name
file:C:/Users/myname/.gitconfig    user.email=my.name@domain.com
file:C:/Users/myname/.gitconfig    credential.helper=wincred
file:C:/Users/myname/.gitconfig    alias.hist=log --pretty=format:'%h - %an, %ad: %s' --graph --date=short
file:C:/Users/myname/.gitconfig    difftool.kdiff3.cmd='C:/Program Files/KDiff3/kdiff3' $LOCAL $REMOTE
file:C:/Users/myname/.gitconfig    difftool.kdiff3.keepbackup=false
file:C:/Users/myname/.gitconfig    difftool.kdiff3.trustexitcode=false
file:C:/Users/myname/.gitconfig    merge.conflictstyle=diff3

file:.git/config        core.repositoryformatversion=0
file:.git/config        core.filemode=false
file:.git/config        core.bare=false
file:.git/config        core.logallrefupdates=true
file:.git/config        core.symlinks=false
file:.git/config        core.ignorecase=true
file:.git/config        core.hidedotfiles=dotGitOnly
file:.git/config        remote.origin.url=https://github.com/repo/Rettung-ZCH
file:.git/config        remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
file:.git/config        branch.master.remote=origin
file:.git/config        branch.master.merge=refs/heads/master
file:.git/config        branch.dev1.remote=origin
file:.git/config        branch.dev1.merge=refs/heads/dev1
file:.git/config        branch.dev2.remote=origin
file:.git/config        branch.dev2.merge=refs/heads/dev2
  • 是否有最佳实践,哪些参数应该显示在哪个配置文件中
。。。继续我下面的例子:

  • 我标记了可以通过
    --system
    --global
    --local
    访问的部件。有人知道第一部分属于哪里吗
  • 绿色是一切,在我看来,它是好的(以我有限的知识)
  • 红色很奇怪,因为它存在两次
当我运行
git config--list--show origin
时,我得到以下结果:

编辑@Code peedient
来自git bash

$ git config --list --show-origin --system
file:"C:\\Git\\mingw64/etc/gitconfig"   credential.helper=manager
和cmd

>git config --list --show-origin --system
file:"C:\\Git\\mingw64/etc/gitconfig"   credential.helper=manager
Git作为代码输出

file:"C:\\ProgramData/Git/config"       core.symlinks=false # ... see .git/config 
file:"C:\\ProgramData/Git/config"       core.autocrlf=true
file:"C:\\ProgramData/Git/config"       core.fscache=true
file:"C:\\ProgramData/Git/config"       color.diff=auto
file:"C:\\ProgramData/Git/config"       color.status=auto
file:"C:\\ProgramData/Git/config"       color.branch=auto
file:"C:\\ProgramData/Git/config"       color.interactive=true
file:"C:\\ProgramData/Git/config"       help.format=html
file:"C:\\ProgramData/Git/config"       http.sslcainfo=C:/Git/mingw64/ssl/certs/ca-bundle.crt
file:"C:\\ProgramData/Git/config"       diff.astextplain.textconv=astextplain
file:"C:\\ProgramData/Git/config"       rebase.autosquash=true

file:"C:\\Git\\mingw64/etc/gitconfig"   credential.helper=manager # ... see file:C:/Users/myname/.gitconfig

file:C:/Users/myname/.gitconfig    filter.lfs.clean=git-lfs clean %f
file:C:/Users/myname/.gitconfig    filter.lfs.smudge=git-lfs smudge %f
file:C:/Users/myname/.gitconfig    filter.lfs.required=true
file:C:/Users/myname/.gitconfig    user.name=My name
file:C:/Users/myname/.gitconfig    user.email=my.name@domain.com
file:C:/Users/myname/.gitconfig    credential.helper=wincred
file:C:/Users/myname/.gitconfig    alias.hist=log --pretty=format:'%h - %an, %ad: %s' --graph --date=short
file:C:/Users/myname/.gitconfig    difftool.kdiff3.cmd='C:/Program Files/KDiff3/kdiff3' $LOCAL $REMOTE
file:C:/Users/myname/.gitconfig    difftool.kdiff3.keepbackup=false
file:C:/Users/myname/.gitconfig    difftool.kdiff3.trustexitcode=false
file:C:/Users/myname/.gitconfig    merge.conflictstyle=diff3

file:.git/config        core.repositoryformatversion=0
file:.git/config        core.filemode=false
file:.git/config        core.bare=false
file:.git/config        core.logallrefupdates=true
file:.git/config        core.symlinks=false
file:.git/config        core.ignorecase=true
file:.git/config        core.hidedotfiles=dotGitOnly
file:.git/config        remote.origin.url=https://github.com/repo/Rettung-ZCH
file:.git/config        remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
file:.git/config        branch.master.remote=origin
file:.git/config        branch.master.merge=refs/heads/master
file:.git/config        branch.dev1.remote=origin
file:.git/config        branch.dev1.merge=refs/heads/dev1
file:.git/config        branch.dev2.remote=origin
file:.git/config        branch.dev2.merge=refs/heads/dev2

Git将用更多的本地设置覆盖更多的全局设置。如果更改了更多的全局值,输出中的重复(红色)值将保证更局部级别的一致性。

Git将用更多局部值覆盖更多全局设置。如果更改了更多的全局值,输出中的重复(红色)值将保证更局部级别的一致性

  • 是否有最佳实践,哪些参数应该显示在哪个配置文件中
这完全取决于您,您是否只想在一个存储库、使用用户帐户访问的所有存储库或这台计算机上的所有存储库上设置(当然,每次仅当未从较低的配置级别覆盖时)

  • 我标记了我可以通过--system,-global和--local访问的部分。有人知道第一部分属于哪里吗
据我记忆所及,这些是Git for Windows客户端的默认值,处于(或者更高)系统设置级别。您可以使用
git config--filec:\ProgramData\git\config--list
等列出并更改它们

  • 绿色是一切,在我看来,它是好的(以我有限的知识)
正如我所说,完全取决于你。本地绿色设置很可能只在本地级别有用,是的。对于我来说,
user.email
并没有在我的工作框中设置为全局级别,因为我处理私人和公司回购协议,并在那里使用不同的地址。通过不在全局级别上进行配置,我会在本地级别上得到提醒,在执行第一次提交时设置它

  • 红色很奇怪,因为它存在两次
您可以在每个级别上设置每个设置,较低级别覆盖较高级别的值,这是完全合法的。你可以用e。G为系统上的所有用户设置为使用
credential.helper=manager
,但为您的用户设置为使用
credential.helper=wincred
,就像您在示例中所做的那样

  • 是否有最佳实践,哪些参数应该显示在哪个配置文件中
这完全取决于您,您是否只想在一个存储库、使用用户帐户访问的所有存储库或这台计算机上的所有存储库上设置(当然,每次仅当未从较低的配置级别覆盖时)

  • 我标记了我可以通过--system,-global和--local访问的部分。有人知道第一部分属于哪里吗
据我记忆所及,这些是Git for Windows客户端的默认值,处于(或者更高)系统设置级别。您可以使用
git config--filec:\ProgramData\git\config--list
等列出并更改它们

  • 绿色是一切,在我看来,它是好的(以我有限的知识)
正如我所说,完全取决于你。本地绿色设置很可能只在本地级别有用,是的。对于我来说,
user.email
并没有在我的工作框中设置为全局级别,因为我处理私人和公司回购协议,并在那里使用不同的地址。通过不在全局级别上进行配置,我会在本地级别上得到提醒,在执行第一次提交时设置它

  • 红色很奇怪,因为它存在两次

您可以在每个级别上设置每个设置,较低级别覆盖较高级别的值,这是完全合法的。你可以用e。G为系统上的所有用户设置为使用
credential.helper=manager
,但为您的用户设置为使用
credential.helper=wincred
,就像您在示例中所做的那样。

对于Windows,应该有以下全局设置:

rem always have Linux line endings in text files
git config --global core.autocrlf input
rem support more than 260 characters on Windows
rem See https://stackoverflow.com/a/22575737/873282 for details
git config --global core.longpaths true
rem some color and diff tweaks
rem   Use SVN's ||| also in git
rem   See https://git-scm.com/docs/git-config#Documentation/git-config.txt-mergeconflictStyle for details
git config --global merge.configStyle "diff3"
git config --global color.diff.new "green bold"
git config --global color.status.updated "green bold"
git config --global color.branch.current "green bold"
rem Sort branches at "git branch -v" by committer date
git config --global branch.sort -committerdate

(中的提示已过时)

对于Windows,应该有以下全局设置:

rem always have Linux line endings in text files
git config --global core.autocrlf input
rem support more than 260 characters on Windows
rem See https://stackoverflow.com/a/22575737/873282 for details
git config --global core.longpaths true
rem some color and diff tweaks
rem   Use SVN's ||| also in git
rem   See https://git-scm.com/docs/git-config#Documentation/git-config.txt-mergeconflictStyle for details
git config --global merge.configStyle "diff3"
git config --global color.diff.new "green bold"
git config --global color.status.updated "green bold"
git config --global color.branch.current "green bold"
rem Sort branches at "git branch -v" by committer date
git config --global branch.sort -committerdate

(提示已过时)

好的,部分内容已被理解。对不起,我是新来的:
/ProgrammData
中的部分是什么?这个文件对你有意义吗?您有什么改进建议吗?@Christoph我认为
C:\\ProgramData/Git/config
是最具全局性的文件。基本上这是所有的默认设置。所有这些都可以在每个较低的级别被覆盖。@Christoph仔细查看后,我认为
C:\\ProgramData/Git/config
C:\\Git\\mingw64/etc/gitconfig
都是系统级设置。区别在于,第一个用于Windows,第二个用于Git Bash。我敢打赌,如果您从
cmd
运行相同的
git config
命令,您将不会看到
mingw64
config文件。不,我不这么认为。我对这两个问题都进行了测试(参见我对问题的编辑)。看起来你必须按照下面的答案来访问它们。好的,部分内容已经理解了。对不起,我是新来的:
/ProgrammData
中的部分是什么?这个文件对你有意义吗?你有什么改进的建议吗?@Christoph我想
C:\\ProgramData/Git/config
是最好的选择