如何仅使用git同步我的最新提交?

时间:2017-08-16 21:29:20

标签: git git-commit git-push

我的本​​地存储库提前2次提交 - 提交A并提交B.

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

所以,我删除了文件,未跟踪它,然后提交了B.但是,我不能push提交B,因为然后提交A和B都尝试push,这导致commit A在推送B之前导致相同的失败。

有没有办法告诉git忽略这两个提交中的第一个?或者“删除”提交A?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

另一个选择是git rebase -i HEAD^^。如果你将A和B压缩在一起,那么在违规文件的最终提交中将没有记录。如果您愿意,这种方法还可以让您有机会将提交A的一些原始提交消息回收到新生成的提交中。

答案 2 :(得分:0)

您可以使用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,而不是提交。您可能必须在cherry-pick过程中清除任何冲突。