亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將Git存儲庫回滾(重置)到特定提交?

如何將Git存儲庫回滾(重置)到特定提交?

Git
海綿寶寶撒 2019-11-04 14:24:13
我克隆了一個Git存儲庫,然后嘗試在開發過程的早期將其回滾到特定的提交。在那之后,添加到存儲庫中的所有內容對我來說都不重要,因此我想忽略本地源代碼中的所有后續更改。但是,當我嘗試在GUI工具中回滾時,它不會更新本地文件系統-我總是最終獲得該項目的最新源代碼。從項目歷史記錄中的特定提交中獲取倉庫資源并忽略所有以后的更新的正確方法是什么?
查看完整描述

3 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

更新:

由于對跟蹤分支的創建和推送方式進行了更改,因此我不再建議重命名分支。這是我現在建議的內容:


復制分支的當前狀態:


git branch crazyexperiment

(該git branch <name>命令將使您的當前分支仍處于檢出狀態。)


使用以下命令將當前分支重置為所需的提交git reset:


git reset --hard c2e7af2b51

(替換c2e7af2b51為您要返回的提交。)


當您確定瘋狂的實驗分支不包含任何有用的內容時,可以使用以下方法將其刪除:


git branch -D crazyexperiment

當您開始使用歷史記錄修改git命令(重置,重新設置基準)以在運行備份分支之前創建備份分支時,它總是很好。最終,一旦您感到舒適,就不會覺得有必要。如果您確實以不需要的方式修改歷史記錄,并且尚未創建備份分支,請查看git reflog。即使沒有分支或標記指向它們,Git也會使提交保持一段時間。


原始答案:

與該git reset --hard方法相比,一種更不那么恐怖的方法是創建一個新分支。假設您在master分支上,并且要返回的提交是c2e7af2b51。


重命名當前的master分支:


git branch -m crazyexperiment

查看您的良好承諾:


git checkout c2e7af2b51

在這里建立新的master分支:


git checkout -b master

現在,如果您以后要查看它,您仍然可以進行瘋狂的實驗,但是您的master分支又回到了您的最后一個已知的好時機,隨時可以添加。如果您確實想放棄實驗,可以使用:


git branch -D crazyexperiment


查看完整回答
反對 回復 2019-11-04
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

當您說“ GUI工具”時,我假設您正在使用Windows的Git。


重要提示,我強烈建議您創建一個新分支(如果尚未執行此操作)。這樣,在測試變更時,您的主人可以保持不變。


使用GUI,您需要像在視圖右側的歷史一樣“回退此提交”。然后,您會注意到您已將所有不需要的文件作為更改提交到左側?,F在,您需要右鍵單擊所有未提交的文件上方的灰色標題,然后選擇“忽略更改”。這會將您的文件恢復為該版本的文件。


查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 1259 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號