git的回退和撤銷操作

2022-05-31 15:27:09 字數 938 閱讀 9220

清空暫存和未暫存的更改 ,倉庫重置到目標提交。

也就是說,使用該命令後,檔案狀態變為目標提交的狀態

所以,可以:git reset head --hard來丟棄所有已暫存和未暫存的更改

保留暫存和未暫存的更改,倉庫重置到目標提交,目標提交之後的所有提交的變更都變為暫存狀態。

也就是說,使用該命令後,檔案的狀態和使用前一樣,變化的只是git相關的狀態(暫存、head等)

保留未暫存的更改,清空暫存的更改,倉庫重置到目標提交,目標提交之後的所有提交的變更都變為未暫存狀態。

也就是說,使用該命令後,檔案的狀態和使用前一樣,變化的只是git相關的狀態

所以,可以:git reset head [filename]來丟棄暫存的更改

使用git reset時**倍小心,因為他可以在有更改沒提交的情況下使用,若操作失誤,有可能丟失沒提交的更改 。若想撤銷reset操作,可使用git reflog找到相應的操作記錄id,回退之,但是沒提交的更改是找不回來了的。

生成乙個新的提交來撤銷某次提交,不會影響此次提交之前的 commit。

建議使用,生成新的提交可增強提交樹的可讀性

丟棄未暫存的修改:git checkout [filename](從暫存區取對應檔案覆蓋到暫存區)

丟棄已暫存和未暫存的修改:git checkout [commit] [filename](清空未暫存的修改,從某個提交取對應檔案覆蓋到暫存區)

適用於不想回退整個提交,而是只回退某個(些)檔案的情況

Git 版本回退和撤銷修改

將版本庫回退乙個版本,且這次提交的所有檔案都移動到暫存區 將版本庫回退乙個版本,且這次提交的所有檔案都移動到工作區,會重置暫存區 將版本庫回退乙個版本,會重置暫存區,工作區會回退到這個版本,即之前提交修改的檔案不會存在 git checkout filename注 checkout 命令沒有 的話就...

git撤銷修改和版本回退

由於一直分不請楚如何工作區的修改 沒有add 暫存區的修改 已add未commit 已提交的修改 已commit 所以參考了大佬的部落格抽時間做了乙個整理。工作區就是我們平常 存放的git初始化的目錄。版本庫就是目錄裡的隱藏檔案 git 而版本庫中的stage就是暫存區 git add file 提...

git 撤銷修改和版本回退

檔案只是在工作區進行了修改,還沒有提交到暫存區 未進行 git add 操作 此時可以使用git checkout filename撤銷工作區檔案的修改 效果相當於刪除本地的檔案,重新從遠端倉庫拉取該檔案 檔案在工作區進行了修改,並提交到了暫存區 進行了 git add 操作,未進行 commit ...