簡體   English   中英

Git:繼續上一次提交的存儲庫歷史記錄

[英]Git: continue repository history from previous commit

假設我的存儲庫的master分支如下所示:

* commit 75e259944814a102d6362eaf42fd4ff09d839865
|
|       Bad commit
|
* commit 0307a5c4e623c584898c44d243a50bb02c91aa9e
|
|       Good commit 1.
|
* commit 98ef0e69e3e5cd51ff5e24c1df616703272c5a79
|
|       Good commit 1.
|

錯誤的提交已推送到中央存儲庫並分發。 我想從上一次的良好承諾繼續發展歷史。 完成后,我希望歷史看起來像

* commit 0626f793ff7ba847e7663fe88de6c6a2d597dc73
| 
|       Continuing development.
| 
| * commit 75e259944814a102d6362eaf42fd4ff09d839865
| | 
| |     Bad commit
| |
| |     
| |
* | commit 0307a5c4e623c584898c44d243a50bb02c91aa9e
|/ 
|       Good commit 2.
|
|       
|
* commit 98ef0e69e3e5cd51ff5e24c1df616703272c5a79
|
|       Good commit 1.
|

也就是說,開發是從上一次“良好”提交繼續進行的。 即使在開發人員中分配了“不良”提交,我也可以安全地實現這一目標嗎?

如果您使用git reset --hard將當前分支重新設置為最后一個良好的提交,然后進行新的提交並再次推送,則您將從所有在錯誤的提交之上開始工作的同事中更改歷史記錄。 對於一個很小的本地團隊來說,他們知道自己在git中做什么,這可能沒什么大不了的。 您可以提前警告所有人,進行更改並推動更改,然后告訴所有人都進行本地調整。 但是,如果人們在錯誤的提交之后進行了功能分支並合並,則可能會有些痛苦。 他們最終將不得不重置周圍的事物,重新進行合並等。

您可以在最后一次好的提交時從后面開始新的分支,但這不會從當前分支的歷史記錄中刪除錯誤的提交,因此這可能沒有幫助。

在這種情況下,您可能想做的就是git revert該錯誤的提交,這會使新的提交與錯誤的提交相反。 這不會改變任何人的歷史。 它只會添加一個新的提交來解決該問題。 看一下git help revert了解詳細信息。 這很簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM