2016-03-14 51 views
3

我附上了一張圖片來說明我的問題。如何從以前的提交中撤消刪除:Gitastrophy

Commit C數百文件被添加。在Commit D中添加了一些文件。當D試圖合併回develop時,發生合併衝突。解決衝突的開發人員通過刪除在C中添加的所有內容來完成此操作。之後,在實現之前添加了幾個提交。

現在我試圖從C重新添加到流中。但簡單地合併Cdevelop將無法​​正常工作,因爲git歷史記錄顯示C中的文件已在D中被刪除。

enter image description here

我不知道如何解決這個問題,而無需通過文件C梳理,將它們添加到一個新的分支,該分支創建一個PR(這將是痛苦的,有數百的文件)。

此外,推力不可用。我們可以暫時得到它們,但是官僚主義的力量將不得不涉足,所以我儘可能避免這種情況。

有沒有人知道如何瀏覽此gitastrophy?

+0

如果DI後,其沒有太多的提交將只提取他們作爲補丁分支新鮮的c和重新申請一切清潔 –

+1

我會開始誰開始誰做這個擺在首位。我知道這無助於回答你的問題,但它可以幫助你感覺更好。 –

回答

0

也許克隆回購,並嘗試git cherry-pick <hash for c>

這應該嘗試添加所有添加,在提交下的文件,也可能給你一個衝突而不是犯什麼。然後,您可以查看衝突,並希望弄清楚要執行的操作。

,或者如果你只想得到你,你犯c或d之後,但有一些額外的提交,這樣的事情是:

git clone <url> #start with a fresh clone in case you mess it up more 
git checkout <hash for d> 
git reset master #if E is master 
git add -A 
git commit -m"get back to where we were after d"