Git管理修改

2021-09-18 06:46:38 字數 2195 閱讀 6985

為什麼git比其他版本控制系統設計得優秀?

因為git跟蹤並管理的是修改,而非檔案

修改:比如新增了一行、刪除了一行、更改了某些字元,這些都是乙個修改

為什麼說git跟蹤管理的是修改?

這時候,可以做個實驗證明,例如修改某一檔案(下述test.txt)內容

然後將修改後的test.txt檔案新增到暫存區

******@****** mingw64 ~/desktop/gitdir (master)

$ git add test.txt

******@****** mingw64 ~/desktop/gitdir (master)

$ git status

on branch master

changes to be committed:

(use "git reset head ..." to unstage)

modified: test.txt

這時候我們還未將test.txt檔案提交再次更改test.txt檔案的內容

修改後,我們將text.txt提交

******@****** mingw64 ~/desktop/gitdir (master)

$ git commit -m "test-commit"

[master 95f2aa7] test-commit

1 file changed, 1 insertion(+)

提交完後,檢視當前的狀態,顯示第二次的修改並未提交為什麼呢?

正如之前所說,git管理的是修改,不是檔案,第一次修改,我們使用git add將修改提交到了暫存區,但是第二次的修改並沒有放入暫存區,所以當我們提交時,git commit只負責將暫存區的修改提交了,而第二次的修改卻不會被提交

******@****** mingw64 ~/desktop/gitdir (master)

$ git status

on branch master

changes not staged for commit:

(use "git add ..." to update what will be committed)

(use "git checkout -- ..." to discard changes in working directory)

modified: test.txt

no changes added to commit (use "git add" and/or "git commit -a")

提交後,我們可以使用git diff -- test.txt檢視工作區版本庫裡最新版本的區別

******@****** mingw64 ~/desktop/gitdir (master)

$ git diff head -- test.txt

diff --git a/test.txt b/test.txt

index 74a4ae3..8814fd7 100644

--- a/test.txt

+++ b/test.txt

@@ -2,3 +2,4 @@ my first git dir

my update

haha

huhu

+xixi

由上可以看出工作區相較於版本庫中,新增了一行xixi,由此可以看出第二次的更改是沒有被提交的,如果需要提交,可以繼續使用git addgit commit將第二次的修改提交

Git 管理修改

現在,假定你已經完全掌握了暫存區的概念。下面,我們要討論的就是,為什麼git比其他版本控制系統設計得優秀,因為git跟蹤並管理的是修改,而非檔案。你會問,什麼是修改?比如你新增了一行,這就是乙個修改,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,甚至建立乙...

Git 管理修改

現在,假定你已經完全掌握了暫存區的概念。下面,我們要討論的就是,為什麼git比其他版本控制系統設計得優秀,因為git跟蹤並管理的是修改,而非檔案。你會問,什麼是修改?比如你新增了一行,這就是乙個修改,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,甚至建立乙...

GIt 管理修改

特別注意 每次修改,如果不用git add到暫存區,那就不會加入到commit中。檢視工作區和版本庫裡面最新版本的區別 git diff head readme.txt 先修改了readme.txt,然後我沒有git add readme.txt,而是直接git commit readme.txt ...