我經常在開發時添加一些調試代碼,因此我需要稍後刪除這些更改。撤消本地更改交互
目前,我檢查git diff
並手動刪除更改,或者只需鍵入git checkout -- myfilename
如果我想撤消整個文件。
我喜歡交互式補丁功能(git add -i
)。 git中是否有工具或命令可以撤銷交互式更改,如git add -i
?
換句話說:我想交互式地檢出文件和hunks出索引。
我經常在開發時添加一些調試代碼,因此我需要稍後刪除這些更改。撤消本地更改交互
目前,我檢查git diff
並手動刪除更改,或者只需鍵入git checkout -- myfilename
如果我想撤消整個文件。
我喜歡交互式補丁功能(git add -i
)。 git中是否有工具或命令可以撤銷交互式更改,如git add -i
?
換句話說:我想交互式地檢出文件和hunks出索引。
你在找什麼,我認爲是git reset --patch
或git reset -p
從the docs:
git的復位(--patch | -p)[] [ - ] [... ]
在索引和(默認爲HEAD)之間的差異中交互式地選擇hunk。選定的區塊與指數相反。
這意味着git reset -p與git add -p相反,即可以使用它來選擇性地重置hunk。請參閱git-add(1)的「交互模式」部分,瞭解如何操作--patch模式。
約git add -p
it says
-p
交互方式選擇索引和工作樹之間的補丁帥哥,並將它們添加到索引。這使用戶有機會在將修改後的內容添加到索引之前查看差異。
這有效地運行加 - 交互,但繞過最初的命令菜單,並直接跳轉到patch子命令。有關詳情,請參閱「交互模式」。
因此,基本上與git reset -p
你可以選擇你重置。
編輯:
-p
--patch
在交互之間的差選擇所述大塊(或索引,如果未指定)和工作樹。然後選擇的hunk被反向應用於工作樹(如果指定了a,索引)。
這意味着您可以使用git checkout -p來選擇性地放棄當前工作樹中的編輯。請參閱git-add(1)的「交互模式」部分,瞭解如何操作--patch模式。
所以,你正在尋找的命令是
$git checkout -p
哦不錯命令THX,但是這不是我尋找。 'git reset -p'只允許我暫停階段性更改。但我喜歡**撤消**未凍結的變化,如'git checkout - file'做 – nickel715
@ nickel715想我誤解了:-)看到我編輯的新答案 –
omg謝謝你,這真棒,完美的作品。你知道是否還有一個選項可以交互地添加整個文件嗎?就像'git add -i'和更新模式一樣? – nickel715