2012-03-02 18 views
5

ブランチは多かれ少なかれタグだけで、自動的に新しいコミットに移動するので、私はこの "タグ"を変更できるのだろうかと思います。git - ブランチ "タグ"を他のコミットに移動しますか?

例:

   master 
A -- B -- C -- D 

git checkout mastergit checkout D

と同じになりますが、私はBのコミットを指すようにマスターを変更することはできますか?

master 
A -- B -- C -- D 

git checkout master

git checkout B

ユースケース

と同じで、誰かがオンラインリポジトリにコミットする1つのをプッシュしていると想像されるだろう。私が git fetchを実行すると、私はこのコミットローカルを取得しますが、私のmasterブランチはまだコミットを指していますが、origin/masterは新しいコミットを指しています。私は、ローカルのマスターブランチをorigin/masterが指しているのと同じコミットに移動したいだけです。

だから、私はマージする必要はありません。これは動作するはずですあなたの助けのための

おかげ

+0

私には複数の論理だ

git fetch git checkout origin/master git branch -d master git branch master 

を、あなたは、単に '起源/ master'をマージします。あなたはローカルなコミットがないので、それはfarst-forwardとして解決されます – knittl

答えて

7

git branch代わりのgit reset --hardも、あなたの作業ディレクトリが保存さを使用してコミット

git branch -f master D 

にポイントへの分岐を再作成します。

+1

これは正しいと思われますが、あなたはすでにこのコマンドを使用している場所にリセットします。 git branch -f master B. –

+1

これはブランチの追跡状況を保持していますか? – everett1992

+0

私は確信していませんが、私はないと思います。 – knittl

0

私はこれまで、別の解決策が見つかりました:それはあなたのプッシュシナリオでは

+0

あなたのコマンドのシーケンスの後にあなたは_detached head_ stateになることに注意してください。 – knittl

関連する問題