2016-04-08 5 views
0

私はDevという名前のブランチがあるとしましょう。 Devをチェックアウトするために、私はgit bashで大文字と小文字が区別されるようにするにはどうすればよいですか?

git checkout Dev 

は今、時々、私は愚かだと

git checkout dev 

を入力し、システムが、私は地元のDevのブランチをチェックアウトしようとしていますことを理解し、それがそのブランチを参照し、入力しデベロッパー名はdevですが、チェックアウトしてください。

これを原点にプッシュすると問題が発生します。 origin/Devがすでに存在する場合、新しい分岐起点/ devを作成します。

解決方法はありますか?

+0

ここにいくつかの[テキスト](http://tosbourn.com/git-branches-seem-to-be-case-insensitive/)がありますが、おそらく問題と "解決策"を理解するのに役立ちます。 – woopata

+1

Gitは、大文字と小文字を区別しないファイルシステムによって混乱とあいまいさとエラーを防ぐために作られていません。あなたが1つにこだわっているなら、あなたはそれを自分で守ることができます。アップルはその後、Microsoftは使い慣れたところで多くのことを正しく行いましたが、大文字と小文字を区別しないファイル名は当初からボットしていて改善されていませんでした。私が今までに聞いたことのない、この問題(ファイルシステムを修正することができない)に対する可能な修正はすべて、問題より悪いです。 – jthill

+0

この情報をお寄せいただきありがとうございます。私のチームは大文字の枝で始めました。私は準拠しなくてはなりません.Sourcetreeを使用しています。 – 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 

は、ここに私の~/.gitconfigchkoutの定義です。

[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の提案で取得する必要があります。

関連する問題