Git 撤銷commit文件 和 回退push的文件

1弃榨、撤銷 commit 的文件
2、撤銷 push 的文件

1娜饵、git reset
2箱舞、視圖操作 reset
3、git revert
4晴股、視圖操作 revert
5愿伴、git reset 和 git revert 的區(qū)別

第一種情況 : 撤銷commit文件

我們先查看一下log日志:
兩種查看方法:
1、git log
  顯示從近到遠的日志記錄电湘,按向下鍵來查看更多隔节,按 Q 鍵退出查看日志
2、git log --pretty=oneline
  簡潔顯示日志記錄

當然還有更多查看 log 的方法,就不展示了,自行百度吧.

0dc5d383d74bbe42af78469e4c4ae5f.png

前五次提交是已經(jīng) push 到遠程倉庫的,第六次是 commit 的,然后我突然不想 commit 了,我想撤銷,好嘞, git 命令嗨起來

git reset --hard 提交id

63e68b00b1a9fce4c6b32fc98497f87.png

意思就是,你要撤銷第六次 commit ,你就要把 HEAD 指向 第五次,所以 reset 一下 HEAD 就好啦
注意:工作空間的代碼的改動就沒啦
如果想保留工作空間的代碼只是撤銷commit,請執(zhí)行下面的命令:
git reset --soft HEAD^

HEAD^的意思是上一個版本寂呛,也可以寫成HEAD~1
如果你進行了2次commit先朦,想都撤回笆豁,可以使用HEAD~2

ps : git status 查看當前文件的狀態(tài)

862fcb9a80d5870d6e2d90d826e0732.png

至于這幾個參數(shù):

--mixed
意思是:不刪除工作空間改動代碼,撤銷commit埠啃,并且撤銷git add . 操作
這個為默認參數(shù),git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的。
--soft
不刪除工作空間改動代碼庶近,撤銷commit富蓄,不撤銷git add .
--hard
刪除工作空間改動代碼,撤銷commit尚镰,撤銷git add .
注意完成這個操作后阀圾,就恢復到了上一次的commit狀態(tài)。

第二種情況 : 撤銷push文件

方法一:

第一步: git log --pretty=oneline   查看當前提交的日志
第二步: git reset --soft XXX   XXX是commitID(d6cdbba417....) 回退當前工作空間的上一個版本,并且保留代碼更改
第三步: git log --pretty=oneline   再次查看當前提交的日志,確認是否成功撤銷,當然,你也可以不看,基本上都會成功,保險一下,看看唄
第四步: git push origin master --force   強制提交當前版本號狗唉,以達到撤銷版本號的目的.必須添加參數(shù)force進行強制提交初烘,否則會提交失敗,報錯原因:本地項目版本號低于遠端倉庫版本號。(master 代表分支名稱,默認是 master分俯,或者也可以直接用git push --force)

注意:這種強制提交的方法只有owner的時候可以用

634e408c2f8e577ea00deeae337c3d6.png

你看,github上第五次提交也撤回咯


d58ba589a9e204f58e06895eab76223.png

方法二

47f4e8746827bf6057eefd56df74a0b.png

選中Reset Current ... 之后肾筐,選擇 Hard 的方式,這幾個的意思缸剪,都講過咯吗铐,不多說咯

75f17da1317b3580b92d90eed8ef449.png

執(zhí)行 git push origin master --force 命令 遠程代碼可以回退咯

方法三

我們來看圖分析,一步步來做
最后一次提交的備注是:NNNNNN提交
倒數(shù)第二次提交的備注是:MMMMM提交
我們目標:回退最后一次提交 NNNNNN提交杏节,讓工作空間的代碼回到 MMMMM提交 的狀態(tài)唬渗。
第一步: git log --pretty=oneline   查看當前提交的日志
第二步: git revert commitID    revert你想回退的版本
第三步:會進入一個新的編輯界面,編寫commit的信息
    i   轉換中文
    Esc + :wq  退出并保存commit信息
第四步:git log --pretty=oneline   再次查看當前提交的日志
第五步:push 代碼(git push或者用AS push)

582e71b4988323d5618422accff5612.png

看遠程提交信息:
62488615f0ed21cace299fe1ad846b9.png

方法四

這個最簡單 借助AS工具來完成奋渔,無需使用git 命令 镊逝。
前提是:AS 配置好 Git 了哈。
我們依然看圖分析來做:
最后一次提交的備注是:Revert 回退NNNNNN提交
倒數(shù)第二次提交的備注是:NNNNNN提交
唉嫉鲸,我這個時候撑蒜,突然又想用 NNNNNN提交 提交的代碼了 ,在方法二中,NNNNNN提交 提交的代碼 已經(jīng)被刪掉了座菠,這里有兩個方案染突,
第一:我們可以用 方法一 reset HEAD 回到NNNNNN提交的地方,
第二:也可以再把Revert 回退NNNNNN提交給revert 辈灼,也可以回到NNNNNN提交的狀態(tài)的代碼份企。

3a9497bb6dc72c4b51e7765d70f8ef5.png

選中要revert的選項,右擊

c69e50c72e7e2c1c25726889aa775ec.png

編輯commit 信息巡莹,然后commit

462049141e79072ebc2c62ae0799392.png

最后push司志,再看看代碼和提交記錄

e76d3a64ec2bf9929b7bbfb7530e813.png

好了 NNNNNN提交 的代碼又回來了
看遠程提交信息:

3988f9f0ada495bd4c9beb7ea3a9af7.png

git reset 和 git revert 的區(qū)別

1、git revert是用一次新的commit來 回滾之前的commit降宅,git reset是直接 刪除指定的commit骂远。
2、在回滾這一操作上看腰根,效果差不多激才。但是在日后繼續(xù)merge以前的老版本時有區(qū)別。因為git revert是用一次逆向的commit“中和”之前的提交额嘿,因此日后合并老的branch時瘸恼,導致這部分改變不會再次出現(xiàn),但是git reset是之間把某些commit在某個branch上刪除册养,因而和老的branch再次merge時东帅,這些被回滾的commit應該還會被引入
3球拦、git reset 是把HEAD向后移動了一下靠闭,而git revert是HEAD繼續(xù)前進,只是新的commit的內容和要revert的內容正好相反坎炼,能夠抵消要被revert的內容愧膀。

ps:如何刪除已經(jīng)push的idea等不想要的文件?
第一步:配置好.gitignore文件,把idea加進去
第二步:git rm -r --cached . (不要忘記點哦~)
第三步:git add .(不要忘記點哦~)
第四部:git commit -m "這里是備注"
第五步:git push
大功告成~~~

------------------------THE END---------------------

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谣光,隨后出現(xiàn)的幾起案子檩淋,更是在濱河造成了極大的恐慌,老刑警劉巖抢肛,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狼钮,死亡現(xiàn)場離奇詭異,居然都是意外死亡捡絮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門莲镣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來福稳,“玉大人,你說我怎么就攤上這事瑞侮〉脑玻” “怎么了鼓拧?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長越妈。 經(jīng)常有香客問我季俩,道長,這世上最難降的妖魔是什么梅掠? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任酌住,我火速辦了婚禮,結果婚禮上阎抒,老公的妹妹穿的比我還像新娘酪我。我一直安慰自己,他們只是感情好且叁,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布都哭。 她就那樣靜靜地躺著,像睡著了一般逞带。 火紅的嫁衣襯著肌膚如雪欺矫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天展氓,我揣著相機與錄音汇陆,去河邊找鬼。 笑死带饱,一個胖子當著我的面吹牛毡代,可吹牛的內容都是我干的。 我是一名探鬼主播勺疼,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼教寂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了执庐?” 一聲冷哼從身側響起酪耕,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轨淌,沒想到半個月后迂烁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡递鹉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年盟步,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躏结。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡却盘,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情黄橘,我是刑警寧澤兆览,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站塞关,受9級特大地震影響抬探,放射性物質發(fā)生泄漏。R本人自食惡果不足惜帆赢,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一小压、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匿醒,春花似錦场航、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至憋他,卻和暖如春孩饼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竹挡。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工镀娶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揪罕。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓梯码,卻偏偏與公主長得像,于是被迫代替她去往敵國和親好啰。 傳聞我的和親對象是個殘疾皇子轩娶,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345