2016-10-06 11 views
0

私はちょうど間違いを犯して本当にgit pullコマンドを元に戻す必要があります。間違いは、git pull origin masterの代わりにgit pull origin devbranchと書きました。だから私は私のサイトの私のマスターブランチに間違ったブランチを取った。私はマージされていない幸運だ。エラーメッセージでgit pullを元に戻す方法

私はgit statusを行うときに、私は今、このメッセージが表示されます。

On branch master 
Your branch and 'origin/master' have diverged, 
and have 10 and 1 different commit each, respectively. 
    (use "git pull" to merge the remote branch into yours) 
All conflicts fixed but you are still merging. 
    (use "git commit" to conclude merge) 

Changes to be committed: 

     modified: sites/all/modules/mymodule/mymodule.module 

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

     cache/normal/www.mysite.com/ 
     sites/default/private/temp/somefile.csv 

[email protected]:/srv/www/mysite/public_html# 

私はgit pullgit fetch + git mergeから成り知っている、これが完了していないマージをCASに、一部だけを取り出します。

私の悲惨な "git pull"の前の状態に戻すにはどうすればいいですか?私はすでにgit reflogを使用して以前のプルコマンドがどのリファレンスを使用していたかを確認してからgit reset --hard a0d3fe6(a0d3fe6は以前のプルからのリファレンス)を実行しました。これは何も変わらなかった。 git statusの後も同じメッセージが表示されます。何をすべきか?

+4

を 'gitのは--abort'マージ。 – torek

+0

torekに感謝、あなたは私の日を救った。もちろんUpvote。 – TBJ

答えて

2

これが再び起こる場合、マージでgitがコミットを追加するだけであることを忘れないでください。マージが完了した場合、すべての元のコミットはそのまま残ります。ですから、そのHEADが上だったコミットを見るために

git reset --hard [email protected]{1} 

であなたのブランチの以前の状態を回復することができます(リストである「HEADの@ {1}」を使用します):

git reflog -32 

とあなたは始動が

にコミットタグ付けすることができますリベースのようなものの複合体をやろうとしている場合、任意の時点でも

git log --oneline --decorate --graph -32 --branch --tags --remotes 

であなたが持っているコミットを見ます

git tag MyStartingCommit 

、物事はすべてアップ汚れている場合は、その後だけで現在のブランチに再起動: - 進行中、それをコミットせずにマージ使用終了するには

git reset --hard MyStartingCommit 
+0

ありがとう!ちょっとした質問... HEAD後のチルダ(〜)文字はどうですか? – TBJ

+1

チルダ文字は、HEADより前のコミットを意味します。しかし、あなたは良い点を挙げています。マージが早送り、マージの場合、複数のコミットが追加されたので、私はreflog(「git help reflog」を参照)を使用する答えを修正しました。 – Gregg

+0

偉大な答え。ありがとうございました。 – TBJ

関連する問題