![](/img/trans.png)
[英]Committing changes on one branch undoes unstaged changes on another branch
[英]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.