目錄
撤銷修改操作
情況一
情況二?????????
情況三?
刪除文件
升級git?
撤銷修改操作
? ? ? ? 在日常編碼過程中,有些時候,我們可能寫著寫著發現目前的版本的代碼越寫越挫,越不符合標準,想讓我們當前的文件去恢復到上一次提交的版本,撤銷當前對文件的修改,其實就是恢復當前工作區的文件到上一個版本,有沒有什么方法呢?
? ? ? ? 方法是有的,但是撤銷修改要分為三種情況去討論。
情況一
? ? ? ? 當前的修改僅僅是修改了工作區的文件,但是沒有進行 git add 操作和 git commit 操作,也就是沒有將文件添加到暫存區和版本庫中,此時想要撤銷當前工作區文件的修改。
? ? ? ? 此時有兩種方法進行撤銷修改。
- 使用 git diff 指令,查看當前修改的文件與上一次提交的文件的差異,根據差異對原有的文件進行相關差異代碼的刪除。這種方法作者不推薦,因為不能保證刪除的過程中一定不會出錯。
- 使用 git checkout -- [filename]?指令進行文件的撤銷修改,將文件恢復到最近一次 add 或者 commit 的版本。推薦使用這種方法。
? ? ? ? 來吧展示。
? ? ? ? 我們給 ReadMe 文件添加了一行 "hello China!!!" 數據,現在我們要撤銷當前的修改操作(這里要注意,添加數據,刪除數據,修改數據其實就是是對文件修改的具體體現)。
????????
? ? ? ? 使用 git checkout -- ReadMe 指令之后,確實完成了對工作區文件修改的撤銷。
情況二?????????
? ? ? ? 對工作區中的文件進行了修改,并且已經進行了 git add 操作,將修改的文件添加到了暫存區中,此時想要撤銷當前工作區和暫存區文件的修改。
? ? ? ? 此時可以使用以下兩種方法進行修改。
- 使用 git reset --mixed HEAD?[filename] 指令,可以將 版本庫 和 暫存區 中的文件恢復到當前提交版本,將暫存區的文件恢復到到當前提交版本之后,此時的情況就變成了情況一,所以根據情況一使用 git checkout 指令進行恢復。
- 使用 git reset --hard HEAD指令,可以將 工作區 和 版本庫 和 暫存區 中的文件恢復到當前提交版本。
? ? ? ? 方法一展示。
? ? ? ? 我們先對 ReadMe 文件做了相同的修改,添加了對應的數據,然后將工作區中的文件進行了git add 操作,然后再使用 git reset HEAD 指令將暫存區和版本庫的文件恢復到了當前提交版本,此時查看本地倉庫的狀態,發現是工作區中的問價未 git add 的狀態,此時就變成了情況一。
? ? ? ? 此時再使用情況一的方法,就能實現工作區中的文件的當前修改的撤銷。
? ? ? ? 此時已經成功完成了對工作區和暫存區文件的當前修改的撤銷。
? ??? ? 方法二展示。
?????????直接使用 git reset --hard HEAD 指令,將當前的工作區,暫存區,版本庫中的文件恢復到當前的提交版本。
? ? ? ? 此時也完成了對工作區和暫存區文件修改的撤銷。?
情況三?
? ? ? ? 對工作區的文件修改之后,進行了 git add 操作,進行了 git commit 操作,已經將修改的文件添加到了暫存區和版本庫中,此時想撤銷對工作區和暫存區和版本庫文件的修改。?
? ? ? ? 方法如下。
? ? ? ? 直接使用 git reset --hard HEAD^ 指令,進行所有文件的撤銷,其實也就是上期的所有文件的回退操作。?HEAD?表示當前提交版本,HEAD^ 表示上一次提交的版本,其它同理。
? ? ? ? 展示如下。
? ? ? ? 先對 ReadMe 文件進行修改操作,然后進行 git add 和 git commit 操作。
? ? ? ? 然后使用 git reset --hard HEAD^ 指令將工作區和暫存區和版本庫中的所有文件恢復到上一版本。?
? ? ? ? 此時就完成了工作區和暫存區和版本庫文件的撤銷修改操作。??
刪除文件
? ? ? ? 有時候我們發現我們創建的文件和提交的文件不符合要求,要將工作區和暫存區和版本庫中對應的文件要刪除,此時我們應該如何進行刪除呢?
? ? ? ? 有兩種方法。
- 先使用 rm 指令刪除掉對應工作區的文件之后,然后使用 git add 和 git commit 指令,這樣最終就刪除了三個模塊中對應的文件。
- 先使用 git rm [filename] 指令,然后再使用 git commit 指令,這樣最終就刪除了三個模塊中對應的文件。
? ? ? ? 由于我們使用的是 git 1.83 版本,第一種方法必須使用 git 2.0 及其以上版本。
升級git?
? ? ? ? 所以要對 git 版本進行升級。?
? ? ? ? 1.卸載掉舊版本。
sudo yum remove git -y
? ? ? ? 使用 git --version 指令查看 git 版本。
? ? ? ? 此時已經完成了舊版本的卸載。
? ? ? ? 2.安裝 git 升級所依賴的倉庫。
sudo rpm -ivh http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
? ? ? ? 3.安裝新版本 git 工具。
sudo yum -y install git -y
? ? ? ? 此時我們通過 git version 指令發現 git 工具新版本已經安裝完畢。?
? ? ? ? 方法一展示。
? ?創建 file1 文件,完成提交之后,將該文件在工作區和暫存區和版本庫中都進行刪除。?
? ? ? ? 最終完成了 file1 文件在各個模塊的刪除操作。?
????????方法二展示。
? ?創建 file1 文件,完成提交之后,將該文件在工作區和暫存區和版本庫中都進行刪除。?
? ? ? ? 最終完成了對 file1 文件在各個模塊的刪除。?
? ? ? ? 其實第二種方法其實就是對第一種方法的整合,第二種方法將第一種方法中的 rm 和 git add 操作進行了整合,所以當第二種方法 git rm 之后,可以直接進行 git commit 操作。
? ? ? ? 以上便是本期的所有內容。
? ? ? ? 本期內容到此結束^_^?