簡體   English   中英

git pull后如何回到以前的未使用狀態

[英]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}但這不會使我回到以前的狀態。

我該怎么辦 ?

要繼續在較舊的提交上進行更改,我建議您使用以下命令鏈-我假設您正在使用命令行界面。

  1. 找到您要“開始”工作的提交(假設提交哈希為123abc
  2. 創建一個指向該提交的分支(我們稱其為testgit branch test 123abc
  3. 檢查新分支git checkout test
    (您可以通過使用git checkout -b test 123abc結合這兩個步驟)
  4. 使用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.

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