您好,匿名用户
随意问技术百科期待您的加入

git 如何撤销一次remote的master commit?

0 投票

除了在local reset后再push之外 有没有在remote直接reset之类的呢? 意义是不想remote有过多commit comment

用户头像 提问 2013年 9月18日 @ Demeter 上等兵 (208 威望)
分享到:

1个回答

0 投票

没有,只能 git reset --hard 然后 git push -f

你的问题询问的是如何撤销 remote 的 commit,唯一的办法就是本地修正然后又强制推送,并且很多人都已经提到,强制推送是非常坏的实践,除非必要或者个人未公开项目或者小团队项目(沟通成本较低)才可行。

看了你给别的回答的评论,貌似你想清理提交历史,那么 git 相比于其它 VCS 在这方面绝对是非常在行的。你可以使用 git rebase 命令对历史进行重构,可以重新排序、合并、拆分一些提交,总之完全足够清理你所谓的脏历史。如果你想要对整个历史做某些确定的修改,还有 git fileter-branch 命令可用,非常灵活,相当值得深入。

说说我的提交流程吧,我一般是对一个文件进行修改直到达到我的目的后才开始进行提交,这个时候我也不是只直接做一次提交,而是使用 vim 和 vim-fugitive 插件,在 diff 模式下打开工作区和暂存区,然后在暂存区重新一步一步的重现我的修改,在适当的时候进行提交。由于我已经完成了整个修改,所以我很清楚每个修订该谁先谁后,所以能够做到比较干净清晰和“原子性”(即一个提交只做一个特定的修改,而不是混合若干个修改)的提交,方便其他人进行代码审阅。

——————

最后,希望注意,SF 不同于国内的论坛模式,不是一问一答再问再答的方式。如果你觉得需要补充你的问题,直接修改问题即可,这样所有关注的人都会得到通知。如果你只在别的回答的评论里面进行问题的更新和补充,没有人会得到通知的。

用户头像 回复 2013年 9月18日 @ Nami 列兵 (71 威望)
提一个问题:

相关问题

0 投票
1 回复 116 阅读
用户头像 提问 2012年 12月1日 @ Maokai 上等兵 (292 威望)
0 投票
1 回复 9 阅读
0 投票
1 回复 44 阅读
0 投票
1 回复 57 阅读
用户头像 提问 2012年 12月1日 @ Sagittarius 上等兵 (289 威望)
0 投票
1 回复 40 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...