2013-03-26 23 views
6

在處理特定於功能的分支(來自'development'分支)時,我採用了錯誤的方法(幾次:/),並且基本上想要刪除所有我在當前提交之前在這個分支上提交。如何在git rebase interactive之後解釋「由我們刪除」

我已經在這種情況之前做的是做一個git rebase -i development和一個我想保持(最新的),然後做一個混帳推--force更新遠程回購之前刪除所有提交只包含我最近的黃金提交。

做完這個之後,當我爲這個rebase commit提交更改的時候,它看起來像git對我的請求有點奇怪地迴應。有幾個文件說它

both modified:  app/helpers/statistics_helper.rb 
deleted by us:  app/models/referrals/chart.rb 
deleted by us:  app/views/statistics/_referrals.html.haml 
deleted by us:  app/views/statistics/_referrals2.html.haml 
deleted by us:  app/views/statistics/_referrals3.html.haml 

我不知道如何迴應這個。如果我在git add之前有「被我們刪除」的文件,它會刪除這些文件嗎?

回答

1

通過刪除提交,就好像它們從未發生過一樣。因此,如果您在之前提交的文件中添加了剛刪除的文件,那麼這些文件也將被刪除。這可能是你看到這個消息的時候。這可能會刪除您想要作爲最終結果一部分的預先存在文件的更改。我認爲你錯誤地使用了rebase。

如果在最後一次提交結束時一切都處於您希望的狀態,您應該簡單地使用壓扁而不是最後一次提交。你可以通過幾種方法做到這一點。像你一樣使用rebase -i,並指定ssquash而不是edit用於所有提交行,除了第一個會執行此操作。

的另一種方式做到這一點是:

git reset --soft HEAD~<N> 
git commit 

哪裏<N>是提交的數目來替你需要壓扁。

相關問題