git reset
git revert
參考文章
在使用git init
初始化乙個repository之後,需要使用git add filename
來使得repository內的檔案被tracked,上面的命令只適合於單個檔案被新增的情況,如果我們有多個檔案被新增的時候,我們會使用一些引數,見下表。
命令效果
git add .
提交新增檔案和修改檔案,不包括被刪除檔案
git add -u
提交被刪除檔案和被修改檔案,不包括新增檔案
git add -a
提交全部修改,即上兩條指令的並集
下面詳細講述一下不同引數的區別。
這條命令只提交新增檔案和修改檔案,不包括刪除檔案。原因是它他監控的是工作區的狀態樹,它會把工作區存在的檔案變化提交到暫存區,相當於對工作區的每乙個變化檔案使用 git add 命令,所以對於在工作區刪除檔案但是該檔案已經進入暫存區,git add操作並不會對它在暫存區產生任何影響。
這條命令只提交刪除檔案和修改檔案,不包括新增檔案。原因是這條指令只對存在於暫存區的檔案(tracked file)進行操作,監控暫存區檔案的任何變化,包括刪除和修改,但是對於工作區新增加的檔案,由於還沒有新增到暫存區,因此不會對新增檔案產生任何影響。
這條指令會對任何操作進行提交,相當與是前兩條指令的並集。
git init
echo change me > change-me
echo delete me > delete-me
git add change-me delete-me
git commit -m initial
echo ok >> change-me
rm delete-me
echo add me > add-me
git status
# changed but not updated:
# modified: change-me
# deleted: delete-me
# untracked files:
# add-me
git add .
git status
# changes to be committed:
# new file: add-me
# modified: change-me
# changed but not updated:
# deleted: delete-me
git reset
git add -u
git status
# changes to be committed:
# modified: change-me
# deleted: delete-me
# untracked files:
# add-me
git reset
git add -a
git status
# changes to be committed:
# new file: add-me
# modified: change-me
# deleted: delete-me
這個例子中還涉及了乙個命令git reset
,下面來詳解講解一下該命令和與它相關的git reverse
命令
這乙個版本回退命令,恢復到之前的某個版本,且在那個版本之後的提交都會刪除。
使用git log
檢視要回退的版本號。
使用git reset --hard 目標版本號
回退到指定版本。
使用git push -f
上傳到遠端庫(因為本地的版本比遠端庫的版本要老,因此需要使用-f引數強制推送)。
除了上述方法外,git revert
命令也可以進行版本回退,但是二者的原理不同。git revert
提交乙個新的版本,將需要revert的版本的內容再反向修改回去,相當於一次逆向的commit。
使用git log
檢視要回退的版本的前乙個版本號。
使用git revert -n 目標版本的前乙個版本的完整的版本號
。
可能會有**衝突,需要手動修改衝突。
使用git commit -m "說明"
由於是新增加的乙個版本,因此需要新的commit。
使用git push
推送到遠端倉庫。
[1]
[2]
[3]
idea中git遠端版本回退
idea中git遠端版本回退 2017年10月15日 15 25 36 gomeplus 工作中遇到git遠端倉庫需要回退到歷史版本的問題,根據網上的搜尋結果結合自己的實踐,整理了如下步驟 1.在 show history 中找到當前版本 取名 newversion 和想要回退到的版本 oldver...
Git 版本回退和撤銷修改
將版本庫回退乙個版本,且這次提交的所有檔案都移動到暫存區 將版本庫回退乙個版本,且這次提交的所有檔案都移動到工作區,會重置暫存區 將版本庫回退乙個版本,會重置暫存區,工作區會回退到這個版本,即之前提交修改的檔案不會存在 git checkout filename注 checkout 命令沒有 的話就...
Git版本回退和分支合併
git跳坑記錄 剛進入公司,初學git可以說是瘋狂跳坑試錯。有些命令使用的時候知其然還要知其所以然,比如reset,不然可能半天的功夫就白費了。寫這篇部落格剛好可以加深記憶。版本回退 git reset 一開始使用的時候總是習慣性加上 hard,也沒有理解引數的含義。結果有一次想追加提交時誤打成gi...