当git config --global用于设置时,它将写入哪个文件?
例:
git config --global core.editor "blah"
Run Code Online (Sandbox Code Playgroud)
我在这些地方找不到它:
C:\Program Files\Git\etc\gitconfig
C:\myapp\.git\config
Run Code Online (Sandbox Code Playgroud)
我还没有设置ENV?
我的Git版本:1.6.5.1.1367.gcd48 - 在Windows 7上
我有app服务器,我使用Chef +一些ad-hoc bash脚本一起引导.问题是,当我想在其中一个应用服务器上运行更新时,我得到:
19:00:28: *** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Run Code Online (Sandbox Code Playgroud)
git pull origin master每次更新应用服务器时,我是否真的需要将其设置为简单?反正有没有覆盖这种行为,所以当没有设置名称和电子邮件时它不会出错?
正如标题所示,如何在Mac中找到git配置文件?不知道如何找到它.需要设定
git config --global http.postBuffer 524288000
Run Code Online (Sandbox Code Playgroud)
找到它需要一些指导..
出于某种原因,当我尝试为我的git帐户设置user.name时,我收到"key user.name的多个值"的错误.如何将其设置为单个名称?
Git项目,全局和系统变量的优先级是什么?
所以,如果我在我的.gitconfig文件中全局设置配置,哪个配置会覆盖它:它是项目级配置还是系统级配置?
我已经阅读了Git文档,我的Git配置中的设置来自哪里?然而我仍然无法理解我的一些设置.
我在Windows 10上使用的是Git 2.5.3.以下是输出git config -l:
? git config -l
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=Ben Collins
user.email=#redacted#
alias.sm=submodule
alias.br=branch
alias.co=checkout
alias.st=status
alias.rebuild=!git rm --cached -r . && git reset --hard
core.excludesfile=C:\Users\Benjamin\Documents\gitignore_global.txt
core.editor=c:/Users/Benjamin/AppData/Local/atom/bin/atom.cmd
core.attributesfile=C:\Users\Benjamin\.gitattributes
push.default=simple
merge.tool=p4merge
mergetool.p4merge.cmd=p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
gui.encoding=utf-8
diff.guitool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
difftool.p4merge.cmd=p4merge.exe "$LOCAL" "$REMOTE"
mergetool.keepbackup=false
rerere.enabled=true
credential.helper=!'C:\Users\Benjamin\AppData\Roaming\GitCredStore\git-credential-winstore.exe'
filter.lfs.clean=git lfs clean %f
filter.lfs.smudge=git lfs smudge %f
filter.lfs.required=true
color.diff.whitespace=red reverse
Run Code Online (Sandbox Code Playgroud)
令人讨厌的是我在任何地方都找不到的前十二种设置.
C:\Program …Run Code Online (Sandbox Code Playgroud) 我有两个相关的问题:
我知道有一个系统,全局和本地(aka项目).gitconfig文件.而且,根据Git网站,这些"级别"(系统,全局,本地)中的每一个都会覆盖前一级别的值,因此./git/config(本地)中的值会胜过其中的值/etc/gitconfig.
换句话说,我们正在处理层次结构,本地配置文件中的任何声明将优先于全局或系统配置文件中的一个声明.
但是,如果设置存在中说,全球文件(比如代理),并没有出现在本地文件确实是设置,然后使用代理从全局设置?这意味着在应用层次结构规则之前,Git可以处理所有配置文件中的所有设置.
然后,在上面的例子中,如果代理从全局设置中被连同我的本地配置文件中的其他设置使用我怎么可以重写呢?
在Windows上的Git 2.6.3上,为什么这个命令会导致:
git config --list
Run Code Online (Sandbox Code Playgroud)
和其他人不一样:
git config --list --system
git config --list --global
git config --list --local
Run Code Online (Sandbox Code Playgroud)
第一个列出的选项多于其他选项的总和.我已经重定向到文件和kdiff比较,并且存在差异.
根据要求,这是git config --list系统/全局/本地分组中的值而不是:
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=C:/Program Files (x86)/Git/mingw32/ssl/certs/ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
Run Code Online (Sandbox Code Playgroud)
上面引用的配置(不在系统/全局/本地)值保存在哪里?
这可能已经得到了回答,但我没有找到一个好的答案.
我来自集中式存储库,例如SVN,通常您只执行检出,更新,提交,还原,合并等等.
Git让我发疯.有很多命令,但最难理解的是为什么很多东西都像他们一样工作.
根据"什么是裸git存储库?" :
使用创建的存储库
git init --bare称为裸存储库.它们的结构与工作目录略有不同.首先,它们不包含源文件的工作或签出副本.
...
创建的裸存储库git init --bare用于... 共享....开发人员将克隆共享裸仓库,在其仓库的工作副本中进行本地更改,然后回退到共享裸仓库以使其他用户可以使用其更改.
- Jon Saints,http://www.saintsjd.com/2011/01/what-is-a-bare-git-repository/
但是,从接受的答案"github存储库和git裸存储库之间有什么区别?" :
GitHub上的Git repos是裸的,就像你要推送到[sic]的任何远程仓库一样.
- VonC,https://stackoverflow.com/a/20855207
但是,在GitHub中有源文件.我可以看到他们.如果我创建一个裸存储库,则没有源文件,只有.git工作存储库目录的内容.
这怎么可能?我不明白什么?
您能举例说明为什么我需要一个裸存储库及其以这种方式工作的动机吗?
爱德华汤姆森的回答部分是我想知道的.不过,我会重新提出我的问题:
我发布了第一个链接状态("什么是裸git存储库?"):
它们[裸存储库]不包含源文件的工作或签出副本.
VonC的回答:
GitHub上的Git repos是裸的
两个陈述暗示
Github没有工作副本.
爱德华汤姆森说:
它会在您浏览数据时根据数据呈现网页 - 将数据直接从存储库中提取出来并输出到您的Web浏览器,而不是先将数据写入文件服务器上的磁盘
不知何故,裸存储库必须包含所有数据和源代码.如果没有,那么渲染任何东西都不是不可能的,因为我可以看到所有源代码更新(提交),所有分支(具有各自的源),回购的整个日志等.
存储库的整个数据是否始终位于.git目录(或裸存储库)中,以某种格式可以随时呈现所有文件?这是裸存储库的原因,而工作副本只在给定时间有文件吗?
我刚开始学习Linux和Git.我正在使用Linux Mint.我通过apt-get安装了Git和emacs.
我使用以下教程 https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
它说在三个不同的地方有配置文件:
/etc/gitconfig 文件~/.gitconfig或~/.config/git/config文件我刚刚开始使用Git,因此假设选项3)不适用
我检查了1)和2) - 我无法在任何地方找到文件
我用谷歌搜索没有运气,并sudo find . -name在根目录中
不知道发生了什么,就像我运行时一样
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Run Code Online (Sandbox Code Playgroud)
(我上面使用了我的姓氏)
它没有给我一个错误或任何东西 - 那么它在哪里写这个配置数据呢?这些文件在哪里?