我想撤消提交,使用 IntelliJ 我右鍵單擊最后一次提交,然后單擊“恢復提交”。一條訊息告訴我沒有進行任何更改。通過查看命令日志,命令是:
revert 75d72c1c0746b225d3857 --no-commit
恢復的更改出現在更改串列中(或使用 sourcetree 在暫存檔案區域中)。我意識到這不是做我需要的正確命令,所以我使用了:
reset --soft HEAD^
最后一次提交被洗掉了,但是修改后的檔案沒有出現在更改串列中。就好像我執行了一個reset --hard.
我設法以另一種方式恢復更改,但我不明白為什么軟重置充當硬重置。
uj5u.com熱心網友回復:
讓我們使用 @0x5453 在評論中給出的示例的修改版本:
git init
echo "hello\n" >> foo
git add foo
git commit -m "add foo"
echo "goodbye\n" >> foo
git commit -am "modify foo"
此時,該檔案foo具有以下內容:
hello
goodbye
我們有兩個提交,檔案中的每一行一個。
現在,當你這樣做時
git revert --no-commit HEAD
這會“撤消”最近提交中的更改。這顯示為尚未提交的本地更改。如果你這樣做git status,你會看到它foo被修改了。它的內容現在
hello
這與第一次提交完全相同。
所以現在當你這樣做時
git reset --soft HEAD~
您重置回第一個提交。但由于該檔案的內容與該提交完全相同,因此您不會看到任何本地更改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/431870.html
標籤:混帐
