[英]How to go back to previous uncomitted state after git pull
我正在與同事一起進行feature-branch
。 它一直是我已經幾天committed
我的變化。
昨天他進行了更改,這更改了我們正在研究的項目的結構,但沒有損害我的更改。
我已經撤消了這些更改並向我的提交了一次提交。在測試之后,我意識到它並沒有按照我希望的方式工作,因此我想回到撤消之前的狀態。
我不能回到以前的提交,因為這樣做會使我最近的更改丟失。
我嘗試了git reflog
,它向我顯示此輸出:
08aed28 HEAD@{0}: commit: Added support for database
4cf0fe8 HEAD@{1}: pull: Fast-forward
d5e2930 HEAD@{2}: commit: Added logs
我做了git reset --hard HEAD@{1}
但這不會使我回到以前的狀態。
我該怎么辦 ?
要繼續在較舊的提交上進行更改,我建議您使用以下命令鏈-我假設您正在使用命令行界面。
123abc
) test
) git branch test 123abc
git checkout test
git checkout -b test 123abc
結合這兩個步驟) git cherry-pick
重新獲得新的更改 櫻桃摘 ( 文檔 )
您可以使用cherry-pick
(引用文檔)“ 應用一些現有提交所引入的更改 ”。
在您的情況下,您現在可以簡單地使用類似於以下命令的命令: git cherry-pick 456def
(其中456def
是要應用其更改的提交的哈希)。
也有可能cherry-pick
一系列提交,例如,如果您想從master分支中選擇最新的3個提交,您的命令可能類似於git cherry-pick master~3..
有關更多信息,請參閱gitrevisions
文檔,或者替代progit書中的“ 版本選擇”一章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.