我是git的新手,我遇到了一些需要帮助的情况。 我将一个远程存储库克隆到我的电脑上,然后打开了一个名为“meir”的新分支。
出于练习目的,我首先提交了一些我对文件所做的更改。之后,我按照我想要的方式更改了文件并再次提交。然后我将本地分支推送到远程存储库。
问题是我有第一次提交是一个测试,我不希望它在远程服务器上。我想了两种可能的解决方法:
我需要运行哪些命令来实现每个选项?
谢谢, 梅尔
答案 0 :(得分:2)
一般来说,在推送到远程存储库中的公共分支后,不应更改提交历史记录。它会给从远程存储库中提取/克隆的人带来痛苦。
但如果你真的想这样做,可以使用交互式rebase和强制推送:
另一种选择是使用git push origin :meir
删除远程分支'meir',使用git rebase -i
重新构建本地存储库,然后正常推送。
答案 1 :(得分:1)
有多种方法可以做到,但是没有一种方法可以推荐 因此,使用它们需要您自担风险。
推送其中一个提交
使用rebase
如果您有2个提交&希望只推动其中一个,这不是最新的一个。
只有这样才会推送与第二个提交ID相对应的更改。你的最新提交不会被推送。
但是,如果必须推送最新的提交而不是第二次提交,则必须先撤消提交
在打开的编辑器中,您应该看到两行代表您的提交53259b225& 227552392喜欢
等等,请选择227552392等等 选择53259b225 blah blah将这两行重新排序为
选择53259b225等等等等 选择227552392 blah blah
然后保存文件。
有了这个,你实际上改变了提交的顺序。如果您在两次提交中处理不同的文件集,那么这将是一个相对容易的过程。如果没有,那么你可能会有一些合并。
如果您认为自己搞砸了,那么在任何时候都可以发出命令
使用壁球
如您所见,这也可用于将少数提交合并为一个。