繁体   English   中英

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

[英]transfer unstaged changes of one branch into another

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

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

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

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

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

git diff > ../unstaged.diff

然后,删除未暂存的更改:

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM