我正在一个新项目上使用 Git,该项目有两个并行的(但目前是实验性的)开发分支:
-
master
:导入现有代码库以及我通常确定的一些修改
-
exp1
:实验分支#1
-
exp2
:实验分支#2
exp1
and exp2
代表了两种截然不同的架构方法。在我进一步了解之前,我无法知道哪一个(如果有的话)会起作用。当我在一个分支中取得进展时,有时我会进行一些在另一分支中有用的编辑,并且想合并这些内容。
将选择性更改从一个开发分支合并到另一个开发分支,同时保留其他所有内容的最佳方法是什么?
我考虑过的方法:
-
git merge --no-commit
然后手动取消暂存大量我不想在分支之间共享的编辑。
-
手动将常用文件复制到临时目录中,然后git checkout
移动到另一个分支,然后更多地手动将临时目录复制到工作树中。
-
上述的一个变体。放弃exp
现在分支并使用两个额外的本地存储库进行实验。这使得手动复制文件变得更加简单。
所有这三种方法似乎都很乏味且容易出错。我希望有更好的方法;类似于过滤器路径参数的东西git-merge
更有选择性。
tl;dr
git checkout source_branch -- path/to/file
# resolve conflicts if any
git commit -am '...'
我遇到了与您上面提到的完全相同的问题。但我发现this更清楚地解释答案。
Summary:
或者,使用重置,然后使用选项添加-p
,
$ git reset <paths>...
$ git add -p <paths>...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)