Git 撤銷 回滾操作

2021-07-25 07:56:14 字數 1936 閱讀 5080

workdir進行add操作將當前修改同步到 index,執行commit操作同步到head,執行push上傳到server。

git reset [head/commitid] 使用head或者commitid覆蓋index,不影響head和workdir,如果是在commit之後執行這個操作相當於同時撤銷了commit和add操作

git reset [head/commitid] – file 針對某個檔案使用head或者commitid覆蓋index,不影響head和workdir

git reset –soft head^ 重置head到上一版本,即撤銷commit操作,不影響index和workdir。

git reset –soft head^1 ^後面的數字表示恢復到哪個父提交的版本,乙個提交可能會對應多個父提交,用於指定回到哪個

git reset –soft commitid 後面新增comiit_id指明回退到哪個版本

git reset –mixed head^ 效果同git reset head^

git reset –mixed head^1 ^後面的數字表示恢復到哪個父提交的版本,乙個提交可能會對應多個父提交,用於指定回到哪個

git reset –hard head^ 重置head到上一版本,會覆蓋index, –hard會使head、index、workdir都重置回之前的版本,遠端伺服器上不會變,如果希望遠端伺服器上也回到上一版本的話,就使用一下git push –force。

git reset –hard head^1 ^後面的數字表示恢復到哪個父提交的版本,乙個提交可能會對應多個父提交,用於指定回到哪個

git reset –hard commitid 用commit_id指定回到哪次 commit

git revert commitid 使用某一次提交覆蓋當前,已達到恢復到某次的效果。revert之後執行一次git push同步到server。

git reset 簡單暴力的將版本置回到某個版本,現在有過a、b、c、d四次提交,提交順序為a、b、c、d,現在為d。使用git reset恢復到a之後,看git log,就只剩下a了,b、c、d都不見了。使用git revert恢復到a之後,看git log,會發現a、b、c、d都在,多了e操作,e操作為「revert a」。

原始log:

執行過git reset之後:

可以看到commitid為7f****的log記錄已經沒有了

再來看一下revert:

解決完衝突,revert之後:

可以看到這裡多了一條「revert 『commit add』」的記錄。

Git撤銷 回滾操作

git checkout filename git checkout git add git status 取消暫存 git reset head 取消暫存 git resethead filename 撤銷修改 git checkout filename 修改最後一次提交 git add samp...

Git撤銷 回滾操作

開發過程中,你肯定會遇到這樣的場景 場景一 糟了,我剛把不想要的 commit到本地倉庫中了,但是還沒有做push操作!場景二 徹底完了,剛線上更新的 出現問題了,需要還原這次提交的 場景三 剛才我發現之前的某次提交太愚蠢了,現在想要乾掉它!撤銷上述場景一,在未進行git push前的所有操作,都是...

Git基礎系列 撤銷 回滾

撤銷一次commit head 1 git reset soft head 1git reset hard head 1git commit amend執行了git reset hard head,回滾 執行了add和commit,可回滾。圖4.1 提交log 圖4.1中,head 為各個執行的命令...