从中继线合并到分支,但仅分支中的文件

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

我已将中继线分支到功能分支。为了使分支保持最新状态,我想经常从主干重新合并(始终是最新的),但是我不希望主干中的所有内容都合并到我的分支中。

是否有可能以某种方式从中继合并仅我在分支中具有的文件?

例如,在合并之前:

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 branch git-merge git-branch
2个回答
0
投票
git merge --no-commit --no-ff trunk
git diff --name-only -z --diff-filter=A @ | xargs -0 git rm -f
git commit

-1
投票

我不认为您可以在一个命令中完成此操作,但这是使用一些可以放入脚本中的命令来完成此操作的一种方法。

1)执行合并,而不自动提交并快速转发更改。这将为您提供一堆准备提交的暂存文件。

git merge --no-commit --no-ff trunk

2)取消暂存所有文件。这将从trunk中分离出所有新文件,因为它们将属于未跟踪文件类别

git reset HEAD

3)删除未跟踪的文件(即中继中的新文件)。 Ofc确保您不希望丢失其他未跟踪的文件!

git clean -fd

4)现在登台并提交

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