Git 基礎再學習之:git checkout -- file

首先明白一下基本概念和用法,這段話是從前在看廖雪峯的git教程的時候摘到OneNote的git

 

準備工做:bash

  • 新建了一個learngit文件夾,在bash中cd進入文件夾,用如下命令建立一個倉庫。
$ git init
  • 添加一個文本文件one.txt,裏面寫個內容 "one"。準備工做完成。文件夾狀況以下:

   

 

 

實驗開始:spa

實驗一:沒有add,沒有commit

  • 此時不對文件作任何提交,用git status 查看一下文件狀態:

    

    說明是徹底沒有 git add 的code

  • 進入文件夾,把文本文件 one.txt 中的內容加一行 「Two」。
  • 回到bash窗口,嘗試用 git checkout -- file 命令恢復狀態,結果報錯:

    

    說明沒有add,還想checkout,沒有什麼意義可言,由於既不在暫存區,也沒有提交,因此就沒有所謂的恢復blog

 

實驗二:有add,但不commit

  • 用 git add 把 文本文件添加到暫存區:

    

  • 進入文件夾,把文本文件 one.txt 中的內容加一行 「Two」。
  • 回到bash窗口,嘗試用 git checkout -- file 命令恢復狀態,啥也沒報。Unix哲學是沒有狀況就是好狀況。
  • 打開 one.txt ,發現添加的那一行沒了,內容中又只剩下 "One"

 

實驗三:add又commit

  • 確認一下:如今文本文件中內容是一行 "One",由於以前已經 add 過了,因此先用以下命令讓狀態恢復到連 add 也沒有過的時候
git rm --cached one.txt

    效果會是這樣的:教程

    

    好,又恢復到了沒有add的狀況。get

  • 而後咱們從頭開始 - -。。。其實我也不知道爲啥要這樣,感受和前面步驟相同比較好一點。。
  • 用 git add 添加,而後用 git commit 提交,結果以下:成功提交

    

   這時候,文本文件中只有一行"One",it

  • 進入文件夾,把文本文件 one.txt 中的內容加一行 「Two」。出現以下界面(說明修改過了)

    

  • 回到bash窗口,嘗試用 git checkout -- file 命令恢復狀態,啥也沒報。Unix哲學是沒有狀況就是好狀況。
  • 打開 one.txt ,發現添加的那一行沒了,內容中又只剩下 "One"

結論:必需要先add才存在恢復一說。 checkout 能夠理解爲「切回某個文件」的意思。可是要注意,這個命令是對工做區生效的。class

相關文章
相關標籤/搜索