1. 程式人生 > >git的筆記(各種型別的後悔藥:撤銷你的修改)

git的筆記(各種型別的後悔藥:撤銷你的修改)

之前說過當你已經提交了你的修改,提交到了版本庫裡,想要回到之前的版本,可以使用

git reset HEAD^
git reset HEAD^^
git reset 88eb //版本號

你還可以使用git log或者git reflog來檢視歷史版本

但是當你還未進行提交,僅僅是修改了工作區的檔案或者已經add到暫存區之後又進行了修改的時候,如果想撤銷你的修改的時候,你可以使用以下命令:

git checkout --file//撤銷未提交的修改

以上修改了兩種情況:
1.還未進行add命令(其實這樣的情況如果你還記得修改了哪裡,你可以手動修改就好了)
2.已經add到暫存區裡面了的修改,但是又進行了工作區的修改

當你已經add到暫存區裡,但是你後悔了的時候,

git reset HEAD filename

一行命令就可以使你的暫存區的東西回退到上個版本
剩下的,你就可以去撤銷工作區的修改

git checkout --file

撤銷工作區裡的修改
好了,哦了,一切都利索了:P

總結一下

誰都有抽的時候,
當你在add之前發現自己抽了,想把自己抽回來:

git checkout --file//撤銷工作區的修改

當你add之後,但是發現自己又抽風的修改了你的工作區的檔案,還想把自己抽回來:

git checkout --file//撤銷工作區的修改

但是當你add之後,發現你自己之前的提交是自己抽了:

git reset HEAD filename//清除暫存區的修改
git checkout --file//清楚工作區的修改

但是當你commit之後,發現自己之前抽了:

git reset HEAD^//回退到上個版本
git reset HEAD~10000//回退到上一萬個版本
git reset 版本號
git log / git reflog //可以使用這兩個命令檢視版本號

好吧,我承認上面的比喻確實有點抽象,可能是我抽了吧:P