2014-01-27 74 views
1

我從遠程原點獲取了一個我朋友推送到的最新主分支。我想在獲取後與我自己的主人合併,但每當我與原產地/主人合併時,它只會說「失敗」。在重新嘗試之前,我已經進行了重置,結果相同。EGit中的合併失敗

由於「失敗」非常模糊,所以我在這裏要求做什麼。

Merge failed

我已經看過的Egit wiki,但他們沒有提到的故障可能的結果。 This tutorial表示「在工作目錄中已經存在衝突的更改時可能會發生失敗的結果。」,這就是我通過使用Google搜索所找到的。

例如:It 2.2.0 Eclipse構建ID:20130225-0426

+0

這幾乎聽起來像是有人在「主人」簽出時做了rebase,或者他們修改了他們已經推送的提交。該共享分支的歷史將被重寫並與您當地的該分支副本不同步。這會導致Git中的所有痛苦和痛苦的莊園。 –

+0

感謝您的輸入。歡迎所有關於如何縮小它的建議,我寫它匆忙,但會增加更多的信息。 – Andreas

+1

如果您的文件在工作目錄中顯示爲「已修改」或「已刪除」,則合併將失敗。您將需要存儲這些更改,或者在合併之前提交它們。 –

回答

1

所以這個問題是沒有例如:It說爲什麼失敗的合併。

在暫存視圖中玩了一段時間後,通過對不熟悉Git的人的信心飛躍,將所有未分離的文件添加到索引中(這很奇怪,因爲我進行了硬重置,爲什麼會存在差異?)我承諾了。在完成提交之後,另一個文件(一個.jar)彈出到未分離的列表中(爲什麼直到我做出提交之前它纔出現?嚴重)。我將它添加到索引並承諾。最後,沒有未分期的文件。

我嘗試合併,它工作。最後我得到了「衝突」結果,而不是「失敗」。添加了一切索引和提交。最後,我似乎已經成功合併,我可以推動。

老實說不知道我是否犯了錯誤,或者Egit不能正常工作。

+1

這可能是由[JGit錯誤372834](https://bugs.eclipse.org/bugs/show_bug.cgi?id=372834)造成的,它是關於如何處理文件中存在CRLF換行符的文件, core.autocrlf'選項設置。在你第一次提交時,你提交了這些文件,並且他們現在在存儲庫中有LF,這可以解決問題。 – robinst

+0

這很有趣,尤其是錯誤的報告日期(因爲我不熟悉EGit或JGit的內部工作原理)。我正在與Mac用戶一起工作,可能就是這樣。那麼爲什麼EGit使用JGit而不是其他一些實現? – Andreas

0

在Git存儲庫視圖中。 1.右鍵單擊本地 - >主分支 2.選擇推分支 - >下一步 3.它彈出一個「選擇推送目標」窗口,檢查其中的「強制更新」。