Git學習筆記(3) 撤銷修改和檔案的刪除

2022-03-06 02:04:14 字數 3673 閱讀 1432

本文主要記錄了git中,錯誤的撤銷和檔案的刪除。

撤銷修改

這裡有3中情況

改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。

不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file,就回到了1,第二步,按照1操作。

已經提交了不合適的修改到版本庫時,想要撤銷本次提交,可以版本回退,不過前提是沒有推送到遠端庫。

//

第一種撤銷:工作區撤銷

ubuntu@myubuntu:~/joe/learngit$ vi

readme.txt //工作區的錯誤還沒有add到暫存區

ubuntu@myubuntu:~/joe/learngit$ git status

位於分支 master

尚未暫存以備提交的變更:

(使用

"git add ...

"更新要提交的內容)

(使用

"

git checkout -- ...

"

丟棄工作區的改動)

修改: readme.txt

修改尚未加入提交(使用

"git add

" 和/或 "

git commit -a")

ubuntu@myubuntu:~/joe/learngit$

git checkout --
readme.txt

ubuntu@myubuntu:~/joe/learngit$ vi

readme.txt

//第二種撤銷:暫存區撤銷

ubuntu@myubuntu:~/joe/learngit$ vi

readme.txt

ubuntu@myubuntu:~/joe/learngit$ git add readme.txt //錯誤的檔案已經提交到暫存區了

ubuntu@myubuntu:~/joe/learngit$ git status

位於分支 master

要提交的變更:

(使用

"

git reset head ...

"

撤出暫存區)

修改: readme.txt

ubuntu@myubuntu:~/joe/learngit$ git reset head readme.txt

重置後撤出暫存區的變更:

m readme.txt

ubuntu@myubuntu:~/joe/learngit$ vi

readme.txt

ubuntu@myubuntu:~/joe/learngit$ git status //撤出暫存區後,還需使用checkout丟棄工作區的改動

位於分支 master

尚未暫存以備提交的變更:

(使用

"git add ...

"更新要提交的內容)

(使用

"git checkout -- ...

"丟棄工作區的改動)

修改: readme.txt

修改尚未加入提交(使用

"git add

" 和/或 "

git commit -a")

ubuntu@myubuntu:~/joe/learngit$

git checkout --
readme.txt

ubuntu@myubuntu:~/joe/learngit$ vi

readme.txt

//第三種已經提交,使用版本回退(學習筆記2)

檔案的刪除

使用rm刪除檔案,然後git add filename新增到暫存區,git commit 提交。

直接使用git rm filename ,不用git add直接git commit即可。

//

第一種方法git rm file

ubuntu@myubuntu:~/joe/learngit$ ls

abc.c readme.txt

ubuntu@myubuntu:~/joe/learngit$

git rm

abc.crm'

abc.c

'ubuntu@myubuntu:~/joe/learngit$ git status

位於分支 master

要提交的變更:

(使用

"git reset head ...

"撤出暫存區)

刪除: abc.c

ubuntu@myubuntu:~/joe/learngit$

git commit -m "

del abc

"

[master 020f927] del abc 1

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

delete mode

100644

abc.c

ubuntu@myubuntu:~/joe/learngit$ git status

位於分支 master

無檔案要提交,乾淨的工作區

ubuntu@myubuntu:~/joe/learngit$ ls

readme.txt

//第二種方法rm file

ubuntu@myubuntu:~/joe/learngit$ ls

ab.c readme.txt

ubuntu@myubuntu:~/joe/learngit$ rm

ab.c

ubuntu@myubuntu:~/joe/learngit$ ls

readme.txt

ubuntu@myubuntu:~/joe/learngit$ git status

位於分支 master

尚未暫存以備提交的變更:

(使用

"git add/rm ...

"更新要提交的內容)

(使用

"git checkout -- ...

"丟棄工作區的改動)

刪除: ab.c

修改尚未加入提交(使用

"git add

" 和/或 "

git commit -a")

ubuntu@myubuntu:~/joe/learngit$ git add ab.c

ubuntu@myubuntu:~/joe/learngit$ git status

位於分支 master

要提交的變更:

(使用

"git reset head ...

"撤出暫存區)

刪除: ab.c

ubuntu@myubuntu:~/joe/learngit$

git commit -m "

del ab.c

"

[master 0ad1dfe] del ab.c 1

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

delete mode

100644

ab.c

ubuntu@myubuntu:~/joe/learngit$ git status

位於分支 master

無檔案要提交,乾淨的工作區

git 學習筆記 撤銷修改

自然,你是不會犯錯的。不過現在是凌晨兩點,你正在趕乙份工作報告,你在readme.txt中新增了一行 cat readme.txt git is a distributed version control system.git is free software distributed under t...

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撤銷某個檔案的修改,分為兩種情況 1.在工作區修改,但並未提交到暫存區 即並沒有add 對於單個檔案的撤銷修改而言,使用下面方法。git checkout 檔名 若想撤銷工作區中所有檔案的修改,則 git checkout 注意 git chekcout 是讓檔案回到最近一次該檔案git co...