在VS2013中进行了多次本地提交之后,有没有办法只推送最后一个并放弃其余部分?我喜欢在做了一些小改动后提交,但是只想在完成所有操作后才推送到远程服务器。
答案 0 :(得分:2)
如果我理解正确的话,你希望在推送之前squash
你的最后一次N提交为1次提交。如果您在调试/开发过程中提交了很多并希望在单个提交消息中包含一个功能,那么这可能是一种很好的做法。
根据this reference,您无法在Visual Studio中执行此操作。
如果您是在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应该自行完成。