将一个分支的无阶段变更转移到另一个分支

时间:2018-09-25 09:22:03

标签: git

在我的应用程序中,我正在一个名为v4.0的分支上工作。

在那个分支中,我对13-14个未暂存的文件进行了更改,一段时间之后,我意识到我必须在v4.0.1上执行此操作,这是错误地发生的。 v4.0上的更改已取消。

有什么方法可以转移我从v4.0.1创建的v4.0中的所有更改,而不必在v4.0中进行更改。

2 个答案:

答案 0 :(得分:2)

假设您知道暂存与提交不同,则可以尝试提取diff并在以后应用它们:

首先,提取差异文件(确保差异文件位于存储库外部,或在.gitignore中被忽略):

git diff > ../unstaged.diff

然后,删除未分段的更改:

git stash save --keep-index --include-untracked

检出目标分支并应用差异:

git checkout v4.0.1
git apply ../unstaged.diff

答案 1 :(得分:2)

是的,有多种方法可以实现您想要的。您可以存储所做的更改并将其弹出到所需的分支中:v4.0.1

假设您位于分支v4.0上,并且进行了暂存的更改,请执行以下命令:

    git stash -u
    git checkout v4.0.1
    git stash pop

然后您可以分阶段进行更改并将其提交到分支v4.0.1中。

请注意,-u选项仅在工作空间中有未跟踪的文件时才需要。