Github撤銷更改

Github撤銷更改,用於記錄與分享,共勉。

有時我們在使用GitHub的時候,修改了一部分內容,但是我們發現思路不符合,但是文件已經修改了很多,不可能一一返回修改,此時我們需要恢復到上次提交內容。

 

場景1:

需要撤銷的內容文件屬於未跟蹤的狀態,即只修改但是沒有運行git add 和commit命令的情況。

運行git status查看類似以下狀態:

撤銷修改的方法:

git checkout .

會自動恢復到最近一次提交的狀態,也就是修改前的狀態。

 

情景2:

需要撤銷的內容已經運行過git add命令,但是未執行git commit命令提交。

撤銷修改的方法:

git reset

git checkout .

git reset命令會刪除暫存的更改,即與情景1類似;git checkout .命令恢復已經修改的文件。

 

情景3:

需要撤銷的內容運行了git add命令和git commit命令。

我們新建一個test.c文件來測試。

解決方法:

git reset --hard HEAD^

這樣會直接恢復到上次提交的狀態,原來新建的文件會直接被刪除,修改的文件也會被複原。

如果只是想撤銷提交,不想刪除本地文件,可以使用以下方法:

git reset --soft HEAD^

這樣操作後就只是撤銷了commit修改的內容依然是可以保留的。恢復到情況2的情況。

HEAD^:表示上一個版本,即上一次的commit,也可以寫成HEAD~1。

如果是進行兩次commit,都想撤回,那麼可以使用HEAD~2。

--soft:不刪除工作空間的改動代碼 ,只撤銷commit,不撤銷git add file。

--hard: 刪除工作空間的改動代碼,撤銷commit且撤銷add。

 

情景4:

需要撤回的內容已經push推送到遠程服務器,即已經可以在GitHub網頁上看到修改的內容。但是發現內容有錯誤的地方,需要撤銷上次推送的內容並且改正。

解決方法:

1.先撤回commit提交

git reset --soft HEAD^

2.撤銷add跟蹤

git reset HEAD + 文件名

或者撤銷全部add的文件:

git reset

3.重新修改文件後重新提交:

git add .

git commit -m “註釋:重新提交的正確內容”

4.強制推送

git push --force

參數--force爲強制推送,這樣操作後,就可以到GitHub網頁上看,之前錯誤的提交已經被重新提交的正確內容取代。

 

到此,GitHub撤銷更改的操作已經完畢。

此文是自我學習的記錄與分享,如果文中有不對的地方,請不吝留言指正,感謝大家。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章