git 代码回滚_能提交到远程的Git回滚
很多情況下我們需要回滾代碼,最容易想到的就是git reset。但是git reset有個(gè)弱點(diǎn),它是一個(gè)徹底的回滾,不能再提交給遠(yuǎn)程了,因?yàn)樵谔峤挥涗浝锘貪L點(diǎn)之后的記錄都不見了。
做一下試驗(yàn),一個(gè)文件我們提交了三次之后回滾
#往前回滾兩次的提交回滾完成之后用git log命令查看發(fā)現(xiàn)只有第一次提交的記錄了,這個(gè)時(shí)候如果推送到遠(yuǎn)程,遠(yuǎn)程git庫(kù)肯定是拒絕的,因?yàn)榇藭r(shí)它已經(jīng)擁有了第三次的提交,畢竟曾經(jīng)滄海難為水。如果擁有force權(quán)限,也可以霸王硬上弓,使用
git push -f來(lái)強(qiáng)制覆蓋,但大多數(shù)情況下開發(fā)者沒(méi)有權(quán)限同時(shí)也不推薦這么做。
這個(gè)時(shí)候git revert就要上場(chǎng)了。它和reset的區(qū)別在于,它會(huì)新生成一個(gè)提交,它的方向是向前,而git reset的方向是向后。
嘗試往前回滾一個(gè)commit
git revert HEAD會(huì)直接彈出編輯提交信息的vi,同時(shí)內(nèi)容直接更新
查看git log,可以看到多出來(lái)一個(gè)提交記錄了
也可以使用提交的hash,回到的是這個(gè)hash的提交之前的狀態(tài)
git revert 64c0提示有沖突,其實(shí)就是根據(jù)之前的提交里的文件內(nèi)容與當(dāng)前的文件內(nèi)容做了一次merge,當(dāng)然就是有沖突了
解決沖突后即可提交,現(xiàn)在這個(gè)本地git推送給遠(yuǎn)程就不再會(huì)被拒絕了,最終終于實(shí)現(xiàn)了除卻巫山不是云。
總結(jié)
以上是生活随笔為你收集整理的git 代码回滚_能提交到远程的Git回滚的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 首款骁龙8+小屏旗舰 小米12S曝光
- 下一篇: spark 用户画像挖掘分析_如何基于S