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

时间:2015-05-26 12:03:37

标签: git visual-studio-2013 version-control push

在VS2013中进行了多次本地提交之后,有没有办法只推送最后一个并放弃其余部分?我喜欢在做了一些小改动后提交,但是只想在完成所有操作后才推送到远程服务器。

1 个答案:

答案 0 :(得分:2)

在VS2013中挤压

如果我理解正确的话,你希望在推送之前squash你的最后一次N提交为1次提交。如果您在调试/开发过程中提交了很多并希望在单个提交消息中包含一个功能,那么这可能是一种很好的做法。

根据this reference,您无法在Visual Studio中执行此操作。

在Git Bash中挤压

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

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

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

这意味着,使用interactive rebase将当前提示重新设置为HEAD~4。这将打开一个编辑器,列出4个提交(按照它们的编写顺序)。默认情况下,每个提交的操作都是pick,因为这是rebase的作用。将pick保留在第一个上,但将pick替换为s(或squash)替换最后一个。这意味着每个提交都将与前一个提交相结合

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

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