本文主要記錄了git中,錯誤的撤銷和檔案的刪除。
撤銷修改
這裡有3中情況
改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file,就回到了1,第二步,按照1操作。
已經提交了不合適的修改到版本庫時,想要撤銷本次提交,可以版本回退,不過前提是沒有推送到遠端庫。
//git checkout -- ...第一種撤銷:工作區撤銷
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$
readme.txtgit reset head ...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 checkout --修改: 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$
readme.txtubuntu@myubuntu:~/joe/learngit$ vi
readme.txt
//第三種已經提交,使用版本回退(學習筆記2)
檔案的刪除
使用rm刪除檔案,然後git add filename新增到暫存區,git commit 提交。
直接使用git rm filename ,不用git add直接git commit即可。
//git rm第一種方法git rm file
ubuntu@myubuntu:~/joe/learngit$ ls
abc.c readme.txt
ubuntu@myubuntu:~/joe/learngit$
abc.crm'git commit -m "abc.c
'ubuntu@myubuntu:~/joe/learngit$ git status
位於分支 master
要提交的變更:
(使用
"git reset head ...
"撤出暫存區)
刪除: abc.c
ubuntu@myubuntu:~/joe/learngit$
del abc
"
[master 020f927] del abc 1git commit -m "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$
del ab.c
"
[master 0ad1dfe] del ab.c 1file 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...