Git 深入理解 如何版本回退

2021-08-04 07:42:48 字數 834 閱讀 1044

應用場景:

從git遠端倉庫拉下**後發現,同事的最後一次提交把bug也連同提交了,這導致我沒法本地執行**了。最關鍵的是,他一下修改了**個檔案,全都報錯,我也不能一點點幫他改呀。

具體操作:

1、先暫存本地修改

git stash

2、回到自己本地最後一次commit:

(1)git log檢視本地commit的版本號

(2)git reset到這個commit

3、恢復暫存

git stash pop

4、接著就可以繼續對自己的**進行修改了,當需要提交的時候:

先git stash,然後git pull,再git stash pop就可以修改了。

心路歷程:

這個問題真的在我們公司非常常見,經常就會有同事把bug提交到庫上了,而我不小心把錯誤**拉下來後,我本地根本沒法跑程式了。這個問題在我們團隊一直存在,今天有空特意研究了一下。

中間遇到了哪些坑呢?

我一直在用git revert ,這樣在最後push**的時候會報錯。這很坑,都已經改那麼多了,最後提交**才報錯。

下面來介紹一下git revert 和 git reset的區別(看了中文blog半天也找不到能理解的,就乾脆去看英文help了):

1、git revert 會把這次commit給撤銷掉,而這次commit之後的commit仍然存在!!!

2、git reset 會把這次commit和之後的commit都撤銷掉!!這也就是為什麼版本回退是需要git reset了。

Git版本回退

1 檢視檔案修改歷史 git log 返回的是commit後的操作記錄 git log pretty oneline 也可以使用這個命令格式化日誌輸出 2 版本回退 git reset hard head 回退到上乙個版本 git reset hard head 100 會退到第100個版本,例如現...

git版本回退

先說今天遇到的問題,看到乙個config.php的配置檔案一直在修改的狀態下,但是和遠端的config.php是不一致的,我不需要提交它,但是看它在 modified的狀態下,很不爽,想刪除它,git rm config.php,然後git push了下,結果不僅把本地的config.php乾掉了,...

git版本回退

把修改後的版本通過命令提交到版本庫 第一步 git add 檔名 字尾 第二步 git commit m commit id 但是有時候想回去怎麼辦呢?當然萬能的git給我們提供了方法的。我們先檢視一下最近到最遠的提交紀錄操作如下 在命令航輸入 git log 會顯示提交日誌,但是嫌輸出過多怎麼辦,...