如何将某些修改从功能分支移至主分支?

问题描述 投票:0回答:2

如标题。我创建了一个分支来执行特定任务

add-ui-components
。不幸的是,我还发现了一些具体的更改,让我们称之为
upgrade-webpack-config
,我想将其移出当前分支。我刚刚命名的后一个分支是一个假分支,因为我既没有为其创建分支也没有提交这些更改。鉴于我位于分支
add-ui-components
,我是否可以将那些未暂存的文件更改移回
main
,以便在完成当前分支
add-ui-components
后我可以为其创建另一个分支?谢谢

让我用一些图表来更好地理解

输入

main: A-B-C
feat: A-B-C-D-E + (not related unstaged changes)

预期输出:

main: A-B-C + (not related unstaged changes)
feat: A-B-C-D-E + (new related changes added here)
git git-branch
2个回答
0
投票
  • 来自
    feat
    分支:隐藏您的更改:
    git stash --include-untracked
  • 转到主目录:
    git checkout main
  • 应用藏匿处:
    git stash pop
  • 承诺
    git commit -m "not related unstaged changes"
  • 返回您的分行:
    git checkout feat

作为最后一步,您必须将

main
中的“最近更改”合并到
feat
- 使用 merge 或 rebase

例如,对于 rebase:

git rebase master
-> 这会有点还原你的所有提交并一一应用它们,就好像你在“不相关的取消阶段更改”提交应用于
feat
 之后进行了分支 
main


0
投票

只需执行

git switch main
,未暂存的更改就会浮出水面。

当然,除非更改的文件在 main/C 和 feat/E 之间不同,但 git 会告诉你。

在这种情况下,您将执行

git stash
,然后
git switch main
,然后
git stash pop

如果后者带来冲突,您可以解决它们,在验证一切正常后可以

git stash drop
存储条目,因为如果存在冲突,
git stash pop
的行为类似于
git stash apply
,将更改保留在存储中,以防您将它们应用到错误的地方或需要重新开始。

© www.soinside.com 2019 - 2024. All rights reserved.