如何在 Git 上将未提交的更改从一个分支移动到另一个分支

How to move changes as uncommitted from one branch to another on Git

我想将一个分支中相对于 master 的所有更改移动到另一个分支。

我不希望它们像更改一样作为提交,以便我可以修改它们并删除一些更改并作为一个提交。我不想保留旧的提交历史记录。

我尝试了 git format-patch master --stdout > mypatch.path git 应用

但这适用于我之后无法修改的提交。

如果我正确理解您想做什么,一种方法是从您的第一个分支开始:

git checkout branch1

从那里创建一个新分支:

git checkout -b branch2

重置回 master,这将删除在 branch1 上所做的任何提交,但将更改保留为未暂存:

git reset master

然后您可以进一步修改文件并将它们作为一次提交提交。

我会这样做以将更改从 branch1 移动到 branch2:

git checkout branch2

git merge --squash branch1

尚未在分支之间创建提交或"copied"。如果需要,可以在提交之前修改更改。