您好我有一個Bitbucket存儲庫。我正在與一個項目的合作伙伴合作,他在幾個提交之前推動了一些更新,在一個文件上工作,我意識到他做了錯誤的代碼。我想恢復那個提交,特別是那個文件,所以我只能返回那個文件的代碼。 cartitems.blade.php恢復特定的舊提交
這可能嗎?
附加的是SourceTree工具的圖像。無法改變的變化是我的新變化。我想保留這些並僅恢復該特定文件。
您好我有一個Bitbucket存儲庫。我正在與一個項目的合作伙伴合作,他在幾個提交之前推動了一些更新,在一個文件上工作,我意識到他做了錯誤的代碼。我想恢復那個提交,特別是那個文件,所以我只能返回那個文件的代碼。 cartitems.blade.php恢復特定的舊提交
這可能嗎?
附加的是SourceTree工具的圖像。無法改變的變化是我的新變化。我想保留這些並僅恢復該特定文件。
像甩掉最後的提交「好」,這樣就好像這沒有發生過?
假設變化已經在master分支:
git checkout master git reset --hard HEAD~1 git push origin master
這應該是足夠的。
如果您已經將其推送到您的倉庫並且您在一個大型團隊中工作,請小心,因爲您的隊友可能會因此而導致一些令人沮喪的合併衝突。
要恢復僅的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 push -f origin master''',順便說一句....如果你沒有使用-f,git會抱怨,因爲origin/master已經超過了你現在試圖放置分支的點。 – eftshift0
我使用SourceTree btw,而不是直接git終端。 – Waleed