仅推送 Visual Studio 2013 年的最后一次提交

Pushing only the last commit in Visual Studio 2013

在 VS2013 中多次本地提交后,有没有办法只推送最后一次并丢弃其余的?我喜欢在做一些小改动后提交,但想在完成所有事情后才推送到远程服务器。

在 VS2013 中压缩

如果我对你的理解是正确的,你希望在推送之前squash你最后的 N 次提交变成 1 次提交。如果您在 debug/devel 期间提交了很多内容并且希望在单个提交消息中包含一个功能,这可能是一个很好的做法。

根据 this reference,您将无法在 Visual Studio.

内执行此操作

压缩 Git Bash

如果您在 Git Bash 等命令行客户端中执行此操作,则可以使用交互式变基。

示例:如果您想压缩 1 次提交中的最后 4 次提交:

git checkout feature-branch
git rebase -i HEAD~4

这意味着,使用 interactive 变基将您当前的提示变基到 HEAD~4。这将打开一个编辑器,列出 4 个提交(按照它们的编写顺序)。默认情况下,为每个提交完成的操作是 pick,因为这就是 rebase 所做的。保留第一个 pick,但将 pick 替换为最后 3 个 s(或 squash)。这意味着这些提交中的每一个都将与前一个合并.

从那里你会得到第二个编辑器,要求为 4 次提交编写一条提交消息。

关闭第二个编辑器后,rebase 应该会自行完成。