使用git删除提交
可能重复:
如何删除'git commit'
我是git新手,遇到了一些需要帮助的情况。 我将一个远程仓库克隆到我的PC,然后打开一个名为“meir”的新分支。
出于实践的目的,我首先对文件进行了一些修改。 之后,我按照自己想要的方式更改文件并再次提交。 然后我将本地分支推送到远程存储库。
问题是我有第一次提交这是一个测试,我不希望它在远程服务器上。 我想到了2种可能的解决方法:
我需要运行哪些命令才能实现每个选项?
谢谢,梅尔
一般来说,在推送到远程存储库中的公共分支后,您不应该更改提交历史记录。 这会对从远程存储库中拉出/克隆的人造成痛苦。
但是如果你真的想要这样做,你可以使用交互式重新分配和强制推送:
另一个选择是使用git push origin :meir
删除远程分支'meir',使用git rebase -i
重新构建本地存储库,然后像平常一样推送。
有多种方式可以做到,但是没有一个可以重新推荐,所以,使用它们需要您自担风险。
推送其中一个提交
使用rebase
如果您有2次提交并希望只推送其中一个,这不是最新的提交。
通过这种方式,只有对应于第二个提交ID的更改才会被推送,并且您的最新提交将不会被推送。
但是,如果最新的提交必须推送,而不是第二次提交,则必须先倒转提交
在打开的编辑器中,您应该看到两行代表您的提交53259b225&227552392
选择227552392等等等等挑53259b225等等等等
重新排列这两行看起来像
挑53259b225等等等等挑227552392等等等等
然后保存该文件。
有了这个,你基本上可以改变提交的顺序。 如果你在两个提交中处理了不同的文件集,那么这将是一个相对简单的过程。 如果没有,那么你可能有一些合并做。
如果在任何时候你认为你已经搞砸了,那么你可以发出命令
使用壁球
正如你所看到的,这也可以用来合并几个提交到一个。
链接地址: http://www.djcxy.com/p/9003.html上一篇: Removing a commit with git
下一篇: How do I reset a bad commit using git on a remote branch?