返回信息流git push了一些错误的代码到gitlab上面了,怎么删除gitlab上的commit信息,回到原来的版本啊?[ema1]呜呜呜,求问
这是一条镜像帖。来源:北邮人论坛 / java / #43915同步于 2015/8/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
gitlab怎么撤销已经push的内容和commit消息啊?
happygirl
2015/8/31镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
昂~~thx,那能能不能删掉那些错误的commit history啊,本地是可以revert,昂~gitlab什么可以删掉吗?
【 在 lixing 的大作中提到: 】
: push的时候加-F参数可强制更新代码. 既然commit错了,那revert一下然后再push一次好了.
其实,根据git的工作原理,branch只是一个指针,指向一个commit。那个commit就是那个branch的头。你要做的只是让branch指向另一个commit,也就是换个头而已。reset的功能就是让一个branch指向另一个commit。
如果branch指向另一个commit,那么那个branch的内容就是那个commit,以及它的父commit,以及它的父commit的父commit,以及……。也就是说,指不到的节点都不是这个branch的一部分。
唯一的问题就是push的时候,如果发现本地的branch和远端的branch不是直线型的关系(毕竟结构上已经分成两支了),会拒绝你的push。这就是-F或者--force的作用了:强制用本地的branch替换远端的branch。一旦替换了,远端原来那个branch就不见了,新的branch没有指向的commit也都成了垃圾。这一步其实挺危险的,稍有不慎是会弄坏repo的。
版本回退http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
赞!!thx!!我感觉自己懂的好少,必须要一点点学!走起!
【 在 nuanyangyang 的大作中提到: 】
: 其实,根据git的工作原理,branch只是一个指针,指向一个commit。那个commit就是那个branch的头。你要做的只是让branch指向另一个commit,也就是换个头而已。reset的功能就是让一个branch指向另一个commit。
: 如果branch指向另一个commit,那么那个branch的内容就是那个commit,以及它的父commit,以及它的父commit的父commit,以及……。也就是说,指不到的节点都不是这个branch的一部分。
: 唯一的问题就是push的时候,如果发现本地的branch和远端的branch不是直线型的关系(毕竟结构上已经分成两支了),会拒绝你的push。这就是-F或者--force的作用了:强制用本地的branch替换远端的branch。一旦替换了,远端原来那个branch就不见了,新的branch没有指向的commit也都成了垃圾。这一步其实挺危险的,稍有不慎是会弄坏repo的。
thx!!赞赞赞!!
【 在 dss886 的大作中提到: 】
: 我翻译过一篇文章:Git:如何还原一个已经同步到远程仓库的Commit?
: LZ可以参考一下
真心谢谢!学习了!!~~
【 在 fallsky 的大作中提到: 】
: 版本回退http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
【 在 happygirl 的大作中提到: 】
: 昂~~thx,那能能不能删掉那些错误的commit history啊,本地是可以revert,昂~gitlab什么可以删掉吗?
commit上去的信息貌似也是可以改的..具体这种黑科技我忘了-,-