标签: git-config

如何在git中共享配置文件?

我有编辑器设置,我想在所有存储库中传播.如果用户定义了自己的设置,那么它当然应该删除存储库选择.

我想这样做,因为我有一个班级,每个学生都克隆了回购.通常他们忘记设置core.editor设置并最终搞乱vi,通常会崩溃回购就像他们已经诅咒魔法力量一样.

因为它适用于我的HOME目录,我尝试在我的repo目录中使用.gitconfig,就像我设置.gitignore一样,但它似乎不起作用.

编辑:

  • --global 让用户设置其首选项来覆盖repo,但是它不允许他在克隆时获取repos配置.
  • .git/config不在克隆的repo中共享

git git-config

14
推荐指数
1
解决办法
2716
查看次数

设置默认差异算法不会转换为默认合并算法(耐心)

我已经看到很多博客文章和堆栈溢出帖子说,这 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 algorithm git-diff git-merge git-config

14
推荐指数
2
解决办法
1098
查看次数

代理后面的企业Github:在CONNECT之后从代理收到HTTP代码503

我试图从公司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 proxy corporate github git-config

14
推荐指数
3
解决办法
3万
查看次数

如何在取/拉时告诉Git忽略某些分支?

目前,当我拉动时,我会从所有分支机构进行更改:

$ 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 git-config git-fetch

13
推荐指数
1
解决办法
1209
查看次数

Git配置user.name不起作用

我今天安装了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上的其他人但不适合我.

git git-config

13
推荐指数
2
解决办法
2万
查看次数

使用Notepad ++作为Git编辑器而不影响设置

我使用和喜欢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 ++在两种情况下都能正常工作而没有相互影响的设置的任何建议?

git notepad++ git-config

12
推荐指数
2
解决办法
8766
查看次数

Jenkins报告的未知选项git config --local

我正在私人仓库中为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)

git continuous-integration git-config jenkins

12
推荐指数
1
解决办法
8081
查看次数

如何在Git别名中包含--no-pager?

我根据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抛出一个错误,说它是一个无法识别的参数,或者它改变了环境变量.有什么建议?

git terminal alias git-config

11
推荐指数
2
解决办法
2191
查看次数

$(前缀)/ etc/gitconfig上的$(前缀)是什么?

gitconfig(1):

如果没有使用--file显式设置,则有四个文件,其中git config将搜索配置选项:

...

$(前缀)/etc/gitconfig

    系统范围的配置文件.

什么是$(prefix)$(prefix)/etc/gitconfig

git configuration prefix git-config

11
推荐指数
1
解决办法
1399
查看次数

Git配置目录范围,包含多个存储库

情况如下:

  • 我有多个,我在其中编写代码,例如专业和空闲时间.这些由我的计算机上的不同目录表示.
  • 这些域中的每一个都包含多个Git存储库,位于其中一个域目录内的分层目录结构中.

每个域,我想使用不同的电子邮件地址作为作者/提交者信息的一部分.也就是说,我希望我的私人地址列在我的空闲时间项目中,我的公司地址在我的专业地址中.

git config知道3个范围:存储库,全局和系统范围.我基本上需要的是存储库和全局之间的第四个范围,表示一组存储库(或简称文件系统中的目录).

似乎git config不允许这样.当然,我可以为每个存储库设置电子邮件地址,但我希望每次设置或克隆存储库时都避免使用此手动步骤.一种选择是写一个包装脚本git init/clonegit config,是否有其他的想法?

git directory repository git-config

11
推荐指数
2
解决办法
1379
查看次数