git status 查看當前創庫情況
liuzhipeng@exdroid43:~/pad/pad-test$ git status 位於分支 master 您的分支與上游分支 'origin/master' 一致。 尚未暫存以備提交的變更: (使用 "git add <文件>..." 更新要提交的內容) (使用 "git checkout -- <文件>..." 丟棄工作區的改動) 修改: PadTest2.0/PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/AuTutuTest.java 修改: PadTest2.0/PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/AuTutuVideoTest.java 修改: PadTest2.0/PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/LinpackTest.java 修改: PadTest2.0/PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/Mark3DTest.java 修改: PadTest2.0/PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/MobileXPRTTest.java 修改: PadTest2.0/PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/UiAssistant.java 修改: PadTest2.0/PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/VellamoTest.java 修改: PadTest2.0/testcase/AI030002-performance-3DMark.py
下面來解析git checkout的意思: git checkout --readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區的修改全部撤銷,這里有兩種情況: 一種是readme.txt自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;(上一次的git commit 后,修改readme.txt 但沒有執行git add,回到上一次的git commit后的結果) 一種是readme.txt已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。(修改readme.txt,並且git add,然后又修改了readme.txt, 此時執行git checkout,回到git add 后的狀態) 總之,就是讓這個文件回到最近一次git commit或git add時的狀態。
需求 ,現在我git add之后,但是我還想放棄git add,回到上一次git commit的狀態,怎么辦? (就是說撤銷掉暫存區,回到工作區的狀態)
分兩步執行:
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file
,就回到了場景1,第二步按場景1操作。
Git同樣告訴我們,用命令git reset HEAD file可以把暫存區的修改撤銷掉(unstage),重新放回工作區: $ git reset HEAD readme.txt Unstaged changes after reset: M readme.txt
git reset
命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用HEAD
時,表示最新的版本。(HEAD^表示上一個版本,就是git log的第二次)
總結時間:
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file
,就回到了場景1,第二步按場景1操作。