回答

收藏

从 Git 的分支中删除提交

技术问答 技术问答 245 人阅读 | 0 人回复 | 2023-09-12

我想知道如何删除提交。
' ~. l. g) C( |3 c3 x- I' U通过delete,我的意思是,如果我没有做出这样的承诺,当我将来推的时候,我所做的改变就不会推到远程分支。5 t( S' \) t5 k! y# o  ~0 Y* [
我阅读了 git help,我认为我应该使用的命令是git reset --hard HEAD. 这个对吗?
. [6 q* V% Q8 d) L3 f5 H                                                               
( V( Z% m7 k+ r5 a    解决方案:                                                               
( s  q) D7 k, \# z/ I                                                                小心: git reset --hard 将删除您的工作目录并更改。在操作此命令之前,请务必存储您想要保留的任何本地变更。
0 O1 L; f8 D0 E! b# |' Q假设你坐在提交上,这个命令会把它搞砸......
2 `: k: L; T2 d$ ]) r# j. \" Sgit reset --hard HEAD~1该HEAD~提交方法的前面。& l9 c% T: s$ g, ]5 R# M. ^
或者,您可以查看 的输出git log,找到要备份的提交 ID,然后执行以下操作:- |9 j& c. U0 j; D4 @
git reset --hard 如果你已经推了它,你需要用力推才能摆脱它......
8 ~. z8 c8 l* Y' Kgit push origin HEAD --force然而,如果其他人可能已经取消了它,你最好开始一个新的分支。因为当他们被拉动时,它只会合并到他们的工作中,你会再次把它推回原处。
" v8 Z  z6 E9 N( e1 q! `如果你已经推了,最好用git revert,创建一个镜像提交,以取消更改。然而,两个提交都将在日志中。, |4 I9 r/ F! j' Y9 s+ F
仅供参考 -git reset --hard HEAD如果你想摆脱正在进行的工作,那就太好了。它将重置您最近的提交,并删除工作树和索引中的所有变化。
6 ^6 D8 P: @$ G$ f( y& l1 \+ y; p* v最后,如果你需要找到你的删除提交,它通常存在,git reflog除非你收集仓库里的垃圾。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则