簡體   English   中英

恢復特定的舊提交

[英]Reverting a specific old commit

嗨,我在 Bitbucket 上有一個存儲庫。 我正在與一個項目的合作伙伴一起工作,他在幾次提交前推送了一些更新,在處理一個文件時,我意識到他做了錯誤的代碼。 我想恢復那個提交,特別是那個文件,所以我只能取回那個文件的代碼。 caritems.blade.php

這可能嗎?

附上SourceTree工具的圖片。 未提交的更改是我的新更改。 我想保留這些並僅恢復該特定文件。

在此處輸入圖片說明

恢復cartitems.blade.php文件(不是整個提交),您可以在“錯誤”提交之前簽出文件版本:

git checkout 41123f6 -- resources/views/cart/cartitems.blade.php

現在確保沒有其他文件被暫存並提交文件:

git add resources/views/cart/cartitems.blade.php
git commit -m "Revert cartitems.blade.php"

這樣你就不必重寫歷史。 但是,我不確定您是否可以使用 SourceTree GUI 執行此操作。 您可以使用 SourceTree 右上角的“終端”按鈕打開終端。

您可以使用git revert來反轉特定提交的效果並創建一個新的提交並恢復更改。

在這種情況下

git revert 797832c

將自動創建一個帶有反向更改的提交。

就像“永遠”擺脫最后一次提交一樣,就像它沒有發生一樣?

假設更改已經在您的主分支上:

git checkout master git reset --hard HEAD~1 git push origin master

那應該就夠了。

如果您已經將它推送到您的存儲庫並且您正在一個大型團隊中工作,請小心,因為您的伙伴可能會因為這樣做而遇到一些令人沮喪的合並沖突。

最好創建一個具有特定提交的新分支,並將 PR 發送到您需要的分支,因為它在舊分支中有舊更改,並且在新分支中有新還原更改。

git checkout -b fix/revert-change 7978732

然后使用git push將新分支推送到遠程

暫無
暫無

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

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