如何使git bash分支区分大小写?

如何使git bash分支区分大小写?,git,git-bash,Git,Git Bash,假设我有一个名为Dev的分支,要签出我要键入的Dev git checkout Dev 现在有时候,我又笨又打字 git checkout dev 系统知道我正在尝试签出本地Dev分支,因此它引用该分支并签出Dev,但名称为Dev 当我把它推到原点时,问题就出现了。当origin/dev已经存在时,它会创建一个新的分支origin/dev 有什么解决办法吗?有。切勿在分支名称中使用大写字母 如果不是您的项目,您无法更改分支名称,则必须按照whoopata的建议进行操作。是的。切勿在分支名称中

假设我有一个名为Dev的分支,要签出我要键入的Dev

git checkout Dev
现在有时候,我又笨又打字

git checkout dev
系统知道我正在尝试签出本地Dev分支,因此它引用该分支并签出Dev,但名称为Dev

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


有什么解决办法吗?

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


如果不是您的项目,您无法更改分支名称,则必须按照whoopata的建议进行操作。

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


如果不是您的项目,并且您无法更改分支名称,则必须按照whoopata的建议进行操作。

您可以为自己创建一个别名,然后始终使用该别名。注意,您需要做的不仅仅是
git checkout
,但这只是一个开始

Jeremy@Jeremy-PC ~/repos/git-test master
$ git branch
  feature
* master

Jeremy@Jeremy-PC ~/repos/git-test master
$ git chkout Feature

Jeremy@Jeremy-PC ~/repos/git-test master
$ git branch
  feature
* master

Jeremy@Jeremy-PC ~/repos/git-test master
$ git chkout feature
Switched to branch 'feature'

Jeremy@Jeremy-PC ~/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' -

您可以为自己创建一个别名,然后始终使用该别名。注意,您需要做的不仅仅是
git checkout
,但这只是一个开始

Jeremy@Jeremy-PC ~/repos/git-test master
$ git branch
  feature
* master

Jeremy@Jeremy-PC ~/repos/git-test master
$ git chkout Feature

Jeremy@Jeremy-PC ~/repos/git-test master
$ git branch
  feature
* master

Jeremy@Jeremy-PC ~/repos/git-test master
$ git chkout feature
Switched to branch 'feature'

Jeremy@Jeremy-PC ~/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' -

这里有一些,也许它有助于理解问题和“解决方案”。Git的构建并不是为了防止不区分大小写的文件系统带来的混乱、歧义和错误。如果你被困在其中,你就得自己去防御。苹果和后来的微软在可重用性方面做了很多正确的事情,但不区分大小写的文件名从一开始就是一个错误,从未改进过。我听说过的所有可能解决此问题的方法(除了修复文件系统)都比问题更糟糕。感谢这些信息,我的团队从大写分支开始,所以我必须遵守,他们都使用sourcetree,所以我可能最终使用gui来保护自己。以下是一些,也许它有助于理解问题和“解决方案”。Git的构建并不是为了抵御不区分大小写的文件系统带来的混乱、歧义和错误。如果你被困在其中,你就得自己去防御。苹果和后来的微软在可重用性方面做了很多正确的事情,但不区分大小写的文件名从一开始就是一个错误,从未改进过。我听说过的所有可能解决此问题的方法(除了修复文件系统)都比问题更糟糕。感谢这些信息,我的团队从大写分支开始,所以我必须遵守,他们都使用sourcetree,所以我可能最终使用gui来保护自己。嘿,谢谢!添加别名可以帮助我,但必须为每个命令添加别名似乎是一件痛苦的事情,学习其他超级用户功能肯定是件好事。我一定会尝试一下。其他的评论和答案都是正确的——这个问题没有好的解决方案@dlsso的想法绝对正确——从未使用大写分支。我理解这一点,但在这种情况下我没有选择。如果有一天我有足够的影响力,我一定会努力改变这一切。我刚刚测试了你的解决方案,现在似乎对我的工作有很大帮助。我确实感受到了你的痛苦。有时候你就是无法控制,需要自己处理。嘿,谢谢!添加别名可以帮助我,但必须为每个命令添加别名似乎是一件痛苦的事情,学习其他超级用户功能肯定是件好事。我一定会尝试一下。其他的评论和答案都是正确的——这个问题没有好的解决方案@dlsso的想法绝对正确——从未使用大写分支。我理解这一点,但在这种情况下我没有选择。如果有一天我有足够的影响力,我一定会努力改变这一切。我刚刚测试了你的解决方案,现在似乎对我的工作有很大帮助。我确实感受到了你的痛苦。有时候你就是无法控制它,需要自己处理。