Git學習系列(三)版本回退和管理檔案的修改及刪除操作

來源:互聯網
上載者:User

版本回退

前面我們成功的提交了一次mygit.txt,下面咱對它進行修改,內容如下:

Hello GitGit is so easy.

然後用git status來跟蹤該檔案的狀態:


可以看到hellogit.txt已經被修改過了,到底這次修改的內容與上次的內容有什麼不同的,咱們可以使用git diff查看:


當然你也可以查看上次提交的資訊,使用git log:


通過前面一章我們知道,該檔案還處於工作區,因此我們又可以使用add、commit操作了:



這裡筆者偷了個懶,直接用-m表示提交的資訊,當然在學習過程中咱可以這樣,但實際工作中一般不這麼寫。

好了,提交完後咱再用git status來跟蹤一下(建議多使用git status)狀態:


這裡依然是:Git告訴咱們當前沒有需要提交的修改,而且工作目錄是乾淨的。

下面再學一個命令:git reflog,它主要用來記錄你的每一次命令和commit id,這個命令非常有效,也建議大家常用。


可以看到咱提交的id號和提交的message被顯示出來了。

加入你現在不想修改了,想回到原來那個版本,該怎麼辦呢?別急,這一點Git早就幫我們想好了,使用git reset --hard HEAD^

注意:這裡HEAD上面^表示回到上一個版本,如果想回到前面第五個版本呢?我們可以用git reset --hard HEAD~5,當然因為我們這裡只修改了1次,所以我們最多隻能回到前面一個版本。開啟hellogit.txt看看,是內容不是Hello Git呢?當然如果你又想修改回去,那麼咱們還有辦法,用git reset --hard commit-id:


注意:這裡的e75e865指的是commit id,上面已經說了,這裡就不再贅述。

撤銷修改:

下面我們再次對helliogit.txt進行修改,內容如下:

Hello GitGit is so easy.Easily learn the Git.
然後我們用git status跟蹤狀態:


這裡Git會告訴你,git checkout -- file可以丟棄工作區的修改:


命令git checkout -- readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,然後在查看狀態:


工作目錄有變回”clean“了,查看hellogit.txt內容 cat hellogit.txt


內容又改回來了,這樣就完成了一次簡單的修改撤銷。如果你把檔案內容修改為原來添加時的:

Hello GitGit is so easy.Easily learn the Git.
git add hellogit.txt到了暫存區,咱們還有辦法,使用git reset HEAD hellogit.txt來返回到工作區狀態:


竟然已經回到了工作區,那麼咱們就可以向之前那樣,使用git checkout -- hellogit.txt了:


好了,一切又回到了,原來的狀態。如果你還從暫存區提交到了版本庫,還記得上面的版本回退嗎?可以回到上一個版本就OK了,不過如果你還將本地的修改推送到遠程版本庫(後面會講),那就沒有後悔藥吃了。


刪除檔案

前面已經說了,在Git中,刪除也算一個修改操作。下面咱們先添加一個新檔案1.txt到Git並且提交:


這是你如果執行rm 1.txt把1.txt檔案刪了,那麼這個時候,Git知道你刪了檔案,工作區和版本庫就不一致了,我們再用git status跟蹤一下:


這是你有兩個選擇,一是確實要從版本庫中刪除,使用git rm 1.txt並commit一下:


注意:你刪除之後,你只能恢複檔案到最新版本,你會丟失最近一次提交後你修改的內容。

另一種情況,你覺得你刪除了想修改過來,因為版本庫中還存在,所以可以很輕鬆地把誤刪的檔案恢複到原來版本。


可以看到,1.txt有回到工作區了。


總結

  今天內容比較多,可能需要點時間慢慢消化,如果有哪裡寫的不對多需要改進或哪裡的地方可以留言,我現在的工作很閑。明天開始講遠程倉庫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.