2016-04-08 140 views
0

让我们说我有一个名为Dev的分支。结帐开发我会键入如何让git bash分支区分大小写?

git checkout Dev 

现在有时候,我很愚蠢,并键入

git checkout dev 

系统了解到,我想签出本地Dev分支,所以它是指分支和结帐开发但用名字dev。

问题出现在我将其推到原点时。当origin/Dev已经存在时,它会创建一个新的分支源/ dev。

有没有解决方案?

+0

这里有一些[文字],也许它有助于理解问题和“解决方案”。 – woopata

+1

Git的构建不是为了抵御由不区分大小写的文件系统引入的混淆和隐患和错误。如果你被困在一个人身上,你就会为自己辩护。苹果,后来微软在重用方面做了很多事情,但不区分大小写的文件名从一开始就是一个烂摊子,从来没有改进。对于这个问题,我所听说过的所有可能的修复(缺少修复文件系统)都比问题更严重。 – jthill

+0

感谢这些信息,我的团队以大写分支开始,所以我必须遵守,他们都使用sourcetree,所以我最终可能会使用gui来保护自己。 – kotsumu

回答

2

你可以创建一个别名为你做这个,然后总是使用别名。请注意,您需要做的不仅仅是git checkout,但这是一个开始。

[email protected] ~/repos/git-test master 
$ git branch 
    feature 
* master 

[email protected] ~/repos/git-test master 
$ git chkout Feature 

[email protected] ~/repos/git-test master 
$ git branch 
    feature 
* master 

[email protected] ~/repos/git-test master 
$ git chkout feature 
Switched to branch 'feature' 

[email protected] ~/repos/git-test feature 
$ git branch 
* feature 
    master 

下面是我的~/.gitconfig中的chkout定义。

[alias] 
    chkout = !sh -c 'git for-each-ref --shell | cut -f 2 | grep -q \"refs/heads/$1\" && git checkout $1' - 
+0

嘿谢谢!添加一个别名可以帮助我,但不得不为每个命令执行它似乎是一种痛苦,但学习其他强大的用户功能确实非常棒。我一定会放弃这一点。 – kotsumu

+1

其他意见和答案是正确的 - 这个问题没有很好的解决方案。 @dlsso绝对有正确的想法 - 从未使用过大写的分支。 –

+0

我明白,但是在这种情况下我没有选择。如果我有一天有足够的影响力,我肯定会尝试改变这一点。我只是测试了你的解决方案,但它现在似乎对我有很大的帮助。 – kotsumu

0

是的。切勿在分支名称中使用大写字母。

如果这不是你的项目,你不能改变分支名称,你必须得到什么whoopata建议。