Git學習筆記(五) 修改管理

2021-07-01 21:56:14 字數 2325 閱讀 4328

git的設計思想並不是管理檔案,而是管理修改,什麼是修改呢?新增一行,刪除一行,更改某些字元,刪了一些又增加一些,甚至建立乙個檔案都是修改。

下面有乙個小實驗來說明這個問題:

1.對read.txt增加一行,然後新增到暫存區:

發現有乙個待提交的檔案。

現在再次修改read.txt檔案,修改什麼你隨意吧。

2.現在直接執行提交:

你會發現還是有未提交的,說明第二次修改並沒有被提交,這是為什麼?

這是因為你第一次操作把檔案放到了暫存區,而第二操作你並沒有執行git add命令新增到暫存區,git commit只會是把暫存區的修改給提交了,第二次沒有放入暫存區的修改並不會被提交。

如果你想提交第二次修改,你可以再執行一次git add,把暫存區的兩個檔案合併後再執行git commit,這樣第二次修改就會被提交。

總之,每次修改如果不git add到暫存區,執行git commit是不會提交本次修改的。

那麼怎麼插銷修改呢?

可以看到,上面是我看了一下修改了什麼地方,git提示我新加了一行,中間我用了撤銷指令,然後再看檔案,發現我上面新增的那一行沒有了。

說明一下:

命令git checkout -- read.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:

一種是read.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;

一種是read.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。

git checkout -- file命令中的–很重要,沒有--,就變成了「建立乙個新分支」的命令,我們在後面的分支管理中會再次遇到git checkout命令。

現在你如果已經新增到了暫存區,發現不太對,想要撤回暫存區的內容,該怎麼做呢?

用命令git reset head file可以把暫存區的修改撤銷掉(unstage),重新放回工作區:

我新增了檔案,然後又撤回了,現在再看一下狀態:

比較上面兩張圖不同的狀態,你會發現我們把放到暫存區的檔案又插銷回來了,重新放回了工作區。

如果你已經提交到了版本庫,那就只能用前面的所講的版本回退功能了,自己去前面找吧。

如果我們錯刪了檔案read.txt,那麼怎麼找回呢?

下面來舉個例子:

1.如果我刪除了工作區的read.txt檔案:

如果你是誤刪的,怎麼恢復?先來看一下狀態:

因為我們的版本庫還沒有刪除,git發現工作區與版本庫不一致了,所以會提醒你read.txt已經刪除,現在如果你想恢復的話,執行指令git checkout -- read.txt:

你會發現這個檔案又回來了。

但如果你就是想刪除這個檔案,並且在版本庫中你也想刪除它,那就用命令git rm刪掉,並且git commit提交一下修改:

其實刪除也是修改,好好消化一下修改的指令

git學習筆記 管理 撤銷修改

git add readme.txt git status 位於分支 master 要提交的變更 使用 git reset head 檔案 以取消暫存 git commit m git tracks changes master 376d9c0 git tracks changes 1 file c...

Git學習筆記(五)標籤管理

我們可以在git上打標籤。首先切換到需要打標籤的分支上,然後使用命令git tag即可打標籤,並可用git tag檢視所有標籤 預設標籤是打在最新提交的commit上的,若想在過去的提交上打標籤則需要找到歷史提交的commit id,然後打上標籤即可。比如我想在add test.txt這個commi...

GIT學習 第五節 管理修改

如何跟蹤修改檔案?如何管理修改檔案?工作區 cat readme.txt git is a version control system.git is free software.git is a distributed version control system.git is free soft...