如何仅将我的最新提交与 git 同步?



我的本地仓库比远程仓库领先 2 次提交 - 提交 A 和提交 B。

提交 A 是首先进行的,并且意外包含一个非常大的文件,该文件太大而无法暂存,并导致push失败。

因此,我删除了该文件,取消跟踪它,然后进行了提交B。但是,我不能push提交 B,因为这样提交 A 和 B 都在尝试push,这会导致提交 A 在推送 B 之前导致相同的失败。

有没有办法告诉 git 忽略这两个提交中的第一个?还是"删除"提交 A?

也许你可以重置所有提交并重新开始,使用干净的堆栈。

  • git reset --soft HEAD~2然后git commit -am "cleaned commit".

另一种选择是git rebase -i HEAD^^。 如果将提交 A 和 B 压缩在一起,则在生成的违规文件提交中将没有记录。 如果您愿意,此方法还将使您有机会将提交 A 的一些原始提交消息回收到新的结果提交中。

您可以使用cherry-pick.

假设您的远程分支master并且具有两个提交的分支master-plus-a-and-b

git checkout master
git checkout -b master-plus-b
git cherry-pick master-plus-a-and-b

现在master-plus-b只有master的提交和提交b,而不是提交a。您可能需要在cherry-pick过程中清理任何冲突。

相关内容

  • 没有找到相关文章