2011-11-25 13 views
5

をやった後、私は以前にチェックアウトがコミットでした:は、「現在、どのブランチにない」コミット

git checkout 12345 

を戻し、最後にコミットします。その後、

git checkout 56789 

そして犯し続け、I 'm:

現在支店にはありません。

おそらく、私がやったはずです。

git checkout master 

を最初にチェックアウトした後、代わりにコミットIDを指しているの。

私の最新のコミットをマスターブランチに取り込むにはどうすればいいですか(いくつかのコミットがありますか?)

おかげ

答えて

10

git checkout 12345を実行すると、ブランチステートになりません。そんなことしたらダメ。これは、コミット検査ではなく、コミット検査のためのものです。

あなたがマスター上にあると、あなたが望んでいたことをコミットするには、あなたのマスターをリセットgit reset 12345を使用する(または--hardを供給)あなたはブランチに望んでいた場合は、その時点でブランチを作成し、そこに作業を開始するためにgit checkout -b <name> <sha1>を使用したい場合。

あなたが言及したように同様に戻って来ている間、あなたはgit checkout master

を行っている必要があります今、あなたは56789の上にコミットしていることを、56789の上にコミットを書き留め、その後、チェックアウトのマスター、とん:

git reset <commit_over_56789> 
+0

あなたの答えはより有益です。ありがとう:-) –

+0

+1。 「git checkout master」は私が必要だったものだった。 –

4

私が正しくあなたを理解していれば、masterブランチが(56789)コミット最新の背後にある、そしてあなたはそれがそれに指すようにしたいと思います。

そのような場合、やって:

git branch -f master 56789 

することにコミットそれにポイントにmasterブランチをリセットします。その後、git checkout master、あなたは行くのが良いはずです。

+0

作業コピーがきれいであると仮定すると、単に 'git checkout master && git rebase 56789'を実行することもできます。 – Romain

+0

パーフェクト。ありがとう、マットとロメイン! –

+0

ありがとう、私のために働いた。私は個人的にこの答えが他のものよりも有用であることを見出します。 –

関連する問題