Git 在单次提交中从 master 获取快照

Git getting snaphot from master in single commit

我在 Visual Studio 中遇到问题。我在一个分支工作,我需要一个新的 master 快照来合并到我的本地分支(git pull 或 rebase)。但是当我做 git pull origin master 时,我在传出 window 中有几个提交,等待与我本地分支的提交一起推送。 我需要干净的推送,只包括我在本地分支中所做的更改,但不包括 pull/rebase 之后从 master 获取的其他提交。 我做错了什么?

我有主分支和一个“xy”本地分支。当我在这个分支 (XY) 的某个时间工作时,我想在推送我的工作之前将更改从 master 拉到本地 XY 分支。但是,当我将我的本地 XY 分支重新定位在 master 之上时,我会将 master 中的所有提交都提交到我的本地分支中,如果我想从 XY 本地分支推送我的工作,我会看到所有提交(从 master 合并))在 otgoing window在VS中。我不希望所有从 master 拉取的提交都在我的传出中。

让我们假设这是您的提交历史:

A - B - C(master, origin/master)
 \ 
  D - E - F(xy)

然后,您在 master 分支上做了一些工作:

A - B - C(origin/master) - G - H(master)
 \ 
  D - E - F(xy)

并且您想将 xy 分支变基到 master 分支:

A - B - C(origin/master) - G - H(master)
                                \ 
                                 D - E - F(xy)

在这种情况下,如果您想在推送到 master 分支之前将 xy 分支推送到远程存储库,您将看到 G - H - D - E - F 提交将被推送,因为远程存储库不了解 G - H 提交.

如果您不想在提交列表中看到 G - H 个提交,首先您必须推送 master,然后将 xy 分支推送到 origin