2013-05-02 166 views
2

我當時在我自己的本地功能部門,想將它合併爲主。我查出了主人,做了git pull --rebase,發生了一次衝突,解決了它,但之後我忘了做git rebase --continue。然後我做了git merge my_other_branch然後想把它推到原點,但是git告訴我我不在任何分支,所以我就像是「哦不,我fogot rebase --continue」所以我做了它,然後git說「沒有變化 - 你忘了使用git add?「。所以現在我不在任何分支......在某種獨立的頭部狀態。忘記了git rebase - 繼續

我需要做些什麼才能重新走上正軌?

回答

2
git rebase --skip 

應該繼續rebase。

+3

或者你可以做'git rebase --abort'並重新做一遍。 – yasouser 2013-05-02 21:20:58

+0

@yasouser是的,這可能是最好的課程。但我相信這會放棄合併。 – 2013-05-02 21:24:36

+0

是的,它會拋棄合併。我建議將它作爲從以前的回購良好狀態中重新開始的另一種選擇。 – yasouser 2013-05-02 21:26:26

1

Klas的答案可能更有用,但總的來說,「超脫頭部」意味着你所尋找的不是一個分支。

因此,你可以通過簽出一個分支(具體來說,你希望你的分支)來解決這個問題。

如果這樣的事情再次發生,我會建議看看你目前的狀態gitk --all,瞭解存儲庫結構和你在哪裏。

0

這是一個難題,因爲你現在搞砸了rebase的內部。我會推薦以下步驟:

  • 開始gitk --all查看您當前的結構。您應該特別能夠看到您當前的HEAD和您之前的分支。看看HEAD上的提交,看看其中哪些是有用的。如果您認爲以後仍然需要它,請在當前的HEAD上創建一個臨時分支。也許承諾你現在的狀態第一git commit -am "dirty"
  • 運行git rebase --abort - 你搞砸了這個rebase。我認爲rebase腳本不會讓你離開那裏。
  • 您現在應該回到您的舊分支機構
  • 使用git rebase --ontogit cherry-pick取回所有要提交的提交。用git reset,git commit --ammendgit rebase進一步修正。
    • 例如:如果你的分支包含提交A--B--C,你成功地重建基礎ABA'B'(檢查gitk),你可以rebase --onto B' B