2 Git中的add和版本回退

2021-09-16 20:34:12 字數 2605 閱讀 9468

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...