2014-06-09 228 views
40

我試圖應用從http://www.winehq.org/pipermail/wine-devel/2014-May/104356.html獲取的修補程序。我將它複製到文本編輯器中,並將其保存爲my.patch(我需要修復電子郵件,它已被混淆)。Git錯誤:之前的rebase目錄.git/rebase-apply依然存在,但mbox給出

我試圖使用Git應用它,但我得到這個錯誤:

[email protected]:~/Desktop/wine-git$ git am --signoff <my.patch 
previous rebase directory /home/sashoalm/Desktop/wine-git/.git/rebase-apply still exists but mbox given. 

這個神祕的錯誤消息,讓我不知道什麼是錯的或者什麼,我需要做的,使其工作。這個錯誤是什麼意思?我該如何解決它?

回答

31

好吧,原來我需要刪除目錄.git/rebase-apply。它在那之後起作用(或者至少給我不同的錯誤,並說電子郵件是錯誤的)。我仍然不知道這個錯誤究竟意味着什麼或者爲什麼會出現錯誤。

編輯:正如下面的評論建議,git rebase --abort可能是一個更好的方法來解決問題,但我沒有測試它。

+1

這個錯誤意味着你在某個時候運行了一個'git rebase',它由於一些衝突而停止了,並且正在等待你完成一些動作並執行'git rebase -continue'完成。解決這種情況的正確方法是:a)修正'git rebase'遇到的問題,然後'git rebase -continue'或b)'git rebase --abort'。您的存儲庫現在可能會也​​可能不會被混淆。閱讀'git help rebase'獲取更多信息。 – twalberg

+0

「rebase」是由'git apply'或'git am'造成的。他們失敗後(由於電子郵件不正確),他們創建了這個目錄。我沒有理由認爲git認爲應用補丁實際上是一個rebase。 – sashoalm

+8

+1用於提示'git rebase --abort',它可以解決我的問題。如果這個問題是由一個糟糕的合併引起的,那麼'git am --abort'可能就是要走的路。 –

26
git am --abort 

爲我工作,但git rebase --abort沒有。

發生了什麼事:我想申請一個補丁,但它已被損壞(可能是由Gmail copy pasting in body):

git am bad.patch 

和Git說:

Applying: python: fix Linetable case to LineTable in docstrings and comments 
fatal: corrupt patch at line 56 
Patch failed at 0001 python: fix Linetable case to LineTable in docstrings and comments 
The copy of the patch that failed is found in: 
    /home/ciro/git/binutils-gdb/src/.git/rebase-apply/patch 
When you have resolved this problem, run "git am --continue". 
If you prefer to skip this patch, run "git am --skip" instead. 
To restore the original branch and stop patching, run "git am --abort". 

注Git是如何給出瞭解決辦法: To restore the original branch and stop patching, run "git am --abort".

然後我明顯忽略了這條消息,立即嘗試了一個固定版本:

git am good.patch 

並得到了錯誤。

相關問題