我最近在 Bitbucket 上創建的 PR 有一個問題。我不小心復制粘貼了檔案的內容,整個內容看起來都是我寫的,這破壞了 Git 歷史,這很重要。這個提交被推送并且之后有幾個提交,所以撤消提交不是這里的解決方案,因為每個提交都有很多更改。
我想知道是否有辦法只從舊提交中恢復舊檔案,只進行必要的更改并提交這個特定檔案。
我已經閱讀了一些關于它的文章,但還沒有提出一個安全的解決方案。
先感謝您 :)
uj5u.com熱心網友回復:
您可以通過在結帳到所需的提交后重置您的本地來做到這一點
git checkout 0d1d7fc32
git reset --soft HEAD~1
git restore {yourFile}
-- recommit and repush the commit
uj5u.com熱心網友回復:
我首選的部分還原方法是:
git revert --no-commit <commid-id-to-revert>
此時,來自該還原的更改將全部上演。您可以取消暫存您不想還原的任何檔案,并修改/重新暫存您希望調整的任何檔案。(在您的特定情況下,您將取消暫存所有檔案,但要還原的檔案除外。)請注意,您可能會遇到沖突。對于您不希望恢復的檔案的任何沖突,您可以“保持最新”,但對于您希望保留的沖突,您需要以與通常相同的方式解決它們。
完成更改后,繼續從命令列恢復,以便自動填充提交訊息:
git revert --continue
提示:默認情況下,當您恢復提交時,提交訊息將類似于:
Revert "Title of commit message being reverted"
This reverts commit <some-commit-id-here>.
我的建議是更改該訊息,特別是對于部分還原,如下所示:
Revert (Partial) "Title of commit message being reverted"
This (partially) reverts commit <some-commit-id-here>.
A custom explanation of which parts of the commit are being reverted,
and why.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419589.html
標籤:
