仅推送 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 应该会自行完成。
在 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 应该会自行完成。