我有编辑器设置,我想在所有存储库中传播.如果用户定义了自己的设置,那么它当然应该删除存储库选择.
我想这样做,因为我有一个班级,每个学生都克隆了回购.通常他们忘记设置core.editor设置并最终搞乱vi,通常会崩溃回购就像他们已经诅咒魔法力量一样.
因为它适用于我的HOME目录,我尝试在我的repo目录中使用.gitconfig,就像我设置.gitignore一样,但它似乎不起作用.
编辑:
--global 让用户设置其首选项来覆盖repo,但是它不允许他在克隆时获取repos配置.我已经看到很多博客文章和堆栈溢出帖子说,这
git config --global diff.algorithm patience
将允许差异和合并使用耐心策略选项与默认的递归算法.
我发现这不是这种情况,我提出以下演示来说明原因.
git config --global diff.algorithm patience //mythical config statement
git clone https://github.com/kjlubick/PracticingGit.git
cd PracticingGit
git checkout origin/patience-merge-1 -t
git checkout -b merge_test //temp branch for merging
git diff origin/patience-merge-2
Run Code Online (Sandbox Code Playgroud)
这种差异(图片由meld看起来很漂亮.让我们尝试合并它.
git merge origin/patience-merge-2
Run Code Online (Sandbox Code Playgroud)
咦?合并看起来很难看.尽管第9-19行没有实际改变,但它们与diff完全不同,标记为冲突/改变.
如果我们强制合并使用耐心策略选项:
git merge --abort
git merge origin/patience-merge-2 -X patience
Run Code Online (Sandbox Code Playgroud)

那好多了.冲突与我们之前制作的差异相匹配,并且在语义上是正确的.
如何让合并实际上使用耐心设置,而不仅仅是差异?
在黑暗中我尝试了额外的镜头(失败):
git config --global merge.algorithm patience
git config --global merge.diff.algorithm patience
Run Code Online (Sandbox Code Playgroud)
系统信息:
Windows 8.1
git版本1.8.4.msysgit.0(通过GitHub for Windows 2.0)
我试图从公司git仓库克隆,但一段时间后总是收到此错误消息:
致命:无法访问URL:CONNECT后从代理收到HTTP代码503
我有以下.gitconfig文件:
[https]
sslVerify = false
proxy = https://proxy.corpadderess:8080
[http]
sslVerify = false
proxy = http://proxy.corpadderess:8080
Run Code Online (Sandbox Code Playgroud) 目前,当我拉动时,我会从所有分支机构进行更改:
$ git pull
remote: ...
Unpacking objects: ...
From ssh://github.com/...
a69d94d..a2019da master -> origin/master
b684d4a..b8819dc develop -> origin/develop
+ 263c644..f1c1894 gh-pages -> origin/gh-pages (forced update)
Updating a69d94d..a2019da
Run Code Online (Sandbox Code Playgroud)
我喜欢这种行为,但我不需要从gh-pages分支中获取内容,因为它只包含生成的内容.如何配置Git以从除some(gh-pages)之外的所有分支获取.我也想避免gh-pages在我的本地分支列表中看到.
我今天安装了Git for Windows 7.我对Git还不太了解,我正在关注该主题的http://git-scm.com/book/en/Getting-Started-First-Time-Git-Setup和YouTube上的视频.在视频中人们安装Git并转到命令行并使用
git config --global user.name = "My Name"
Run Code Online (Sandbox Code Playgroud)
和
git config --global user.email = "email@example.com"
Run Code Online (Sandbox Code Playgroud)
并且它为它们创建具有正确值的.gitconfig文件C:/Users/admin/.gitconfig.
运行上面的代码行三次后,这就是我在该文件中得到的:
[user]
name = =
email = =
name = =
Run Code Online (Sandbox Code Playgroud)
为什么不工作?我遵循官方教程,我发现它适用于YouTube上的其他人但不适合我.
我使用和喜欢Notepad ++(http://notepad-plus-plus.org/)作为我的简单文本编辑器.我已经使用它作为git的默认编辑器几个星期了,并注意到一些有趣的行为.
通常我运行Notepad ++,启用Tab Bar就像这样

但是,当我使用Notepad ++作为我的git编辑器时,我更希望它以最基本的模式打开(主要是没有选项卡,并且在它自己的实例中)我只想要一个文本编辑器来记录我的提交消息等.我的相关部分.gitconfig设置如下
[core]
autocrlf = true
editor = "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Run Code Online (Sandbox Code Playgroud)
当从git启动时,使用此Notepad ++会根据需要打开,但是,下次正常启动Notepad ++时,它会丢失我之前的设置,并且不再显示标签栏.每次我想在从git启动后使用Notepad ++时都必须更新此设置真的很烦人.关于如何让Notepad ++在两种情况下都能正常工作而没有相互影响的设置的任何建议?
我正在私人仓库中为GitHub上托管的C#项目设置CI.
Git安装在主CentOS机器上,MSBuild安装在从属窗口上.
我在GitHub上创建了帐户,并将其添加到我的私人仓库中.
当我在Jenkins上设置源代码管理时,我输入了URL(as https://github.com/.../repo.git)并使用新帐户输入了凭据.
詹金斯报道:
Failed to connect to repository : Command "git config --local credential.helper store --file=/tmp/git2956041026506359040.credentials" returned status code 129:
stdout:
stderr: error: unknown option `local'
usage: git config [options]
Config file location
--global use global config file
--system use system config file
-f, --file <FILE> use given config file
Action
--get get value: name [value-regex]
--get-all get all values: key [value-regex]
--get-regexp get values for regexp: name-regex [value-regex]
--replace-all replace all matching variables: name value …Run Code Online (Sandbox Code Playgroud) 我根据EdgeCase 的Git Immersion教程创建了一个Git别名,如下所示:
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Run Code Online (Sandbox Code Playgroud)
但现在它似乎正在分页结果 - 显示(END)结果后的终端显示,迫使我Q继续工作.我读到通过添加--no-pager标签,您可以禁用此功能; 如何将其合并到别名中?我在最后,之前log和之后尝试过,而且没有一个能够奏效.Git抛出一个错误,说它是一个无法识别的参数,或者它改变了环境变量.有什么建议?
如果没有使用--file显式设置,则有四个文件,其中git config将搜索配置选项:
...
$(前缀)/etc/gitconfig
系统范围的配置文件.
什么是$(prefix)对$(prefix)/etc/gitconfig?
情况如下:
每个域,我想使用不同的电子邮件地址作为作者/提交者信息的一部分.也就是说,我希望我的私人地址列在我的空闲时间项目中,我的公司地址在我的专业地址中.
git config知道3个范围:存储库,全局和系统范围.我基本上需要的是存储库和全局之间的第四个范围,表示一组存储库(或简称文件系统中的目录).
似乎git config不允许这样.当然,我可以为每个存储库设置电子邮件地址,但我希望每次设置或克隆存储库时都避免使用此手动步骤.一种选择是写一个包装脚本git init/clone和git config,是否有其他的想法?