我已将中继线分支到功能分支。为了使分支保持最新状态,我想经常从主干重新合并(始终是最新的),但是我不希望主干中的所有内容都合并到我的分支中。
是否有可能以某种方式从中继合并仅我在分支中具有的文件?
例如,在合并之前:
Trunk
File 1
File 2
File 3
File 4
Branch
File 2
File 3
合并后,我不需要以下内容。我只想合并树干中的文件2和文件3。
Branch
File 1
File 2
File 3
File 4
git merge --no-commit --no-ff trunk
git diff --name-only -z --diff-filter=A @ | xargs -0 git rm -f
git commit
我不认为您可以在一个命令中完成此操作,但这是使用一些可以放入脚本中的命令来完成此操作的一种方法。
1)执行合并,而不自动提交并快速转发更改。这将为您提供一堆准备提交的暂存文件。
git merge --no-commit --no-ff trunk
2)取消暂存所有文件。这将从trunk
中分离出所有新文件,因为它们将属于未跟踪文件类别
git reset HEAD
3)删除未跟踪的文件(即中继中的新文件)。 Ofc确保您不希望丢失其他未跟踪的文件!
git clean -fd
4)现在登台并提交