2011-12-17 123 views
1

我對git比較陌生,所以這個問題可能是我自己的錯。但我認爲這太脆弱了。任何建議來恢復損害將不勝感激。Git分支搞砸

這是我的分支設置。

Machine A (Mac): 
    master 
    couch 

Machine B (Windows): 
    master 

計算機B上,我試圖拉從機A.主機和沙發分支機構不幸的是,我忘了我還沒有創建機器B上的沙發上還支。下面是我做的機器B.原點設於機A.

git pull origin master 
git pull origin couch 

令我驚訝的是,混帳的機器B自動合併沙發分支成高手!我的期望是git在機器B上爲我創建沙發分支,如果它不存在的話。

如何撤消合併?我還沒有準備好將沙發分支合併到master中。我將在機器B上完全刪除它,並從機器A再次刪除它。我只是很好奇是否有更好的解決方案。

+0

不幸的是,由於缺乏的經驗。 Git完成了你所說的事情。 @manojlds在描述發生了什麼,應該如何完成以及如何解決問題時是正確的。但是,如果你正在刪除和重新制作,就像他說的那樣,做'git checkout -b沙發起源/沙發'。這將把沙發分支拉到你的本地倉庫。 – wadesworld

回答

4

git pull origin couch

將獲取從機器A沙發上分支,並與當前分支,而你的情況會一直主合併它,這就是爲什麼你看到沙發上合併到主。所有你需要做的只是一個簡單的git pull然後git checkout -b couch origin/couch

只是做git reflog,看到你的主人是以前做git reset --hard <sha from reflog>或類似git reset --hard [email protected]{2}

或者你也可以做git reset --hard ORIG_HEAD

+0

正確,我也建議使用git pull --rebase – gvd