淺入Git學習 管理修改 撤銷修改 刪除檔案

2021-08-17 09:21:46 字數 3282 閱讀 4142

管理修改

之前一直以為git管理的是我們修改過後的檔案,才發現原來我認為的是錯,git跟蹤管理的是修改,而並非檔案

首先,我們對readme.txt進修改

$ cat readme.txt

11111

2222

3333

4444

5555

6666

然後,新增

$ git add readme.txt

$ git status

on branch master

changes to be committed:

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

modified: readme.txt

再修改readme.txt,然後提交

$ git commit -m "add"

[master 0c85a37] add

2 files changed, 4 insertions(+), 1 deletion(-)

檢視狀態

$ 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: readme.txt

第二次的並沒有被提交

因此我們可以看出git管理的是修改,我們使用git add命令,只是把修改放入了暫存區,使用 git commit只負責把暫存區的修改提交到當前master分支當中

撤銷修改

撤銷修改可以分為三種情況

第一種:修改後還沒有被放到暫存區

$ cat readme.txt

\f0\fs24 \cf0 11111\

2222\

3333\

4444\

5555\

6666\

7777

8888

$ 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: readme.txt

$ git checkout -- readme.txt

$ cat readme.txt

\f0\fs24 \cf0 11111\

2222\

3333\

4444\

5555\

6666\

7777

使用git checkout -- readme.txt 就可以復原到之前的版本

第二種:修改了而且已經新增到了暫存區

$ cat readme.txt

\f0\fs24 \cf0 11111\

2222\

3333\

4444\

5555\

6666\

7777

8888}

$ git add readme.txt

$ git status

on branch master

changes to be committed:

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

modified: readme.txt

$ git reset head readme.txt

unstaged changes after reset:

m readme.txt

$ 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: readme.txt

$ git checkout -- readme.txt

$ cat readme.txt

\f0\fs24 \cf0 11111\

2222\

3333\

4444\

5555\

6666\

7777

使用git reset head readme.txt 可以把暫存區的修改給撤銷

第三種: 已經提交到了版本庫,但是並沒有推送到遠端庫中,可以使用版本退回的命令撤銷

git reset -- hard head^

刪除檔案

使用rm可以直接刪除資料夾中的檔案

$ rm test.txt

$ git status

on branch master

changes not staged for commit:

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

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

deleted: test.txt

使用git rm test.txt可以把版本庫的檔案刪除

$ git rm test.txt

rm 'test.txt'

$ git commit -m "remove test.txt"

[master f20e07c] remove test.txt

1 file changed, 0 insertions(+), 0 deletions(-)

delete mode 100644 test.txt

如果不小心把工作去的檔案刪除了,可以使用

git checkout -- test.txt回到之前的版本

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 status 初始狀態是,什麼都沒有修改 on branch master nothing to commit working directory clean 修改了乙個檔案fu 狀態變成 root 172.18 4.100 gitlearn git status on branch mas...

Git撤銷修改

撤銷修改 加入在readme中加入了不想要的語言,在沒提交之前,使用 git status 檢視可以得到如下 遇到這種情況可以手動刪除,也可以使用 git checkout file命令丟棄工作區的修改。如圖,新的文件中取出了新增的部分。git checkout readme.txt會遇到兩種情況。...