2012-01-08 8 views
1

gitの2倍になったので、私はmasterから分岐することを意図していましたが、現在のブランチから偶然分岐しました。これは、2番目のブランチからの私のプルリクエストが、まだマージされていない最初のブランチのすべてのコミットを含んでいたことを意味します。gitのブランチからの分岐を避ける

マスター以外のブランチから分岐する前に確認する方法がありますか?

branch1 
    branch2 
* master 

そして、あなたが現在置かれている枝スターマーク:あなたは

git branch 

を実行する場合

答えて

7
git checkout -bに2つ目のパラメータを指定しないのはなぜ

$ git checkout -b newbranch master 

第2パラメータは、どこから分岐するかです。あなたはUNIXタイプのシェルを使用していると仮定すると、

+0

+1。簡単に、既存のメカニズムを使用して、ポイントに。 – fge

0

あなたはこのような何かを得ます。

+0

はい、私は知っています - 事はちょうど 'git checkout -b'を考えずに実行しています。私はブランチからチェックアウトするときに自動警告が点滅するようにしたいと思います。 –

+0

ああ、申し訳ありません。 – BananaNeil

0

gitの代わりに使用するbashスクリプトを書くことができます。

新しいブランチを作成すると、マスターになっていることを確認します。 ノーであれば、それは停止(または継続をお願い)し、そうならば、それは本当のgitの実行されます

たとえば、あなたが名前を付けることがあり、それgitcheckout

2

は、ここにあなたが適応させることができ、単純な機能です:

function git() { 
    if [ $# -eq 3 -a "$1" = "checkout" -a "$2" = "-b" ] ; then 
     curbranch=$(git name-rev --name-only HEAD) 
     if [ "$curbranch" != "master" ] ; then 
      echo "You're on branch $curbranch." 
      echo "Confirm new branch creation? [yn]" 
      read a 
      if [ "$a" != "y" ] ; then 
       echo Aborted. 
       return 1 
      fi 
     fi 
    fi 
    /usr/bin/git [email protected] 
} 

git checkout -b one_other_paramにトリガーされます。

注:「デタッチヘッド」状態にある場合、これはおそらく期待どおりに機能しません。 git name-revは私が信じる正しい情報を与えません。

+0

ニース。もちろん、現在のブランチ!= masterの場合にのみプロンプトが表示されるように、これをさらに修正することもできます。 – Avi

1

$(__git_ps1)をコマンドプロンプト(シェルrcファイルのPS1変数)に追加すると、現在のブランチは常に表示されます。

関連する問題