一、什麼是 git reset
git reset 是 Git 中常用的一個命令,用於撤銷之前的提交。它有三種模式:
1. soft
撤銷 commit,但保留修改。使用此模式時,HEAD 指針會回到指定的 commit,同時暫存區和工作區的修改仍然存在。
git reset --soft <commit>
2. mixed(默認模式)
撤銷 commit,並取消暫存的修改。使用此模式時,HEAD 指針會回到指定的 commit,同時暫存區中的修改會被取消,工作區的修改會被保留。
git reset <commit>
3. hard
撤銷 commit,並刪除工作區和暫存區的修改。使用此模式時,HEAD 指針會回到指定的 commit,同時暫存區和工作區的修改會被全部刪除。
git reset --hard <commit>
二、 git reset 某個文件的用途
有時候我們只需要撤銷某個文件的修改,而不是整個提交,這時可以使用 git reset 某個文件。它有兩種模式:
1. mixed 模式
如果我們只想撤銷某個文件在暫存區的修改,可以使用如下命令:
git reset <file>
這條命令會將指定的文件還原到 HEAD 狀態,即撤銷暫存區的修改,但不會修改工作區的內容。
2. hard 模式
如果我們想直接將某個文件在工作區和暫存區的修改全部撤銷,可以使用如下命令:
git checkout -- <file>
這條命令會將指定的文件還原到 HEAD 狀態,即撤銷暫存區和工作區的修改。
三、示例
假設我們在本地新建了一個 test.txt 文件,並添加到了暫存區。
touch test.txt
git add test.txt
然後我們修改了 test.txt 文件,並再次添加到了暫存區。
echo "Hello World" > test.txt
git add test.txt
如果我們想撤銷暫存區的修改,可以使用如下命令:
git reset test.txt
如果我們想撤銷工作區和暫存區的修改,可以使用如下命令:
git checkout -- test.txt
上述命令將 test.txt 文件還原到了上一個提交的狀態。
四、小結
git reset 命令在撤銷提交時非常有用,它有多種模式可以滿足不同的需求。同時,通過 git reset 某個文件,我們可以針對單個文件進行修改的撤銷,非常靈活方便。
原創文章,作者:ACELY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/371635.html