Git-仅更新当前分支中存在的文件

Git-仅更新当前分支中存在的文件,git,version-control,Git,Version Control,我在我的本地回购中有2个分支-主(核心文件)和带有附加(核心+附加配置)的主\u 掌握 系统/ 自由基/ 主控_和_添加 系统/ 自由基/ 加上/ 所有两个分支都包含相同的文件,但master\u和_adds包含其他文件夹。现在我切换到master\u和_adds,进行一些更改并提交它。如何仅使用master中存在的文件更新我的master分支?i、 e.我只需复制系统和库,不得复制文件夹添加 已解决:我在这里找到了答案如果您希望带来的更改不包括添加或删除文件,您可以 git che

我在我的本地回购中有2个分支-主(核心文件)和带有附加(核心+附加配置)的主\u

  • 掌握
    • 系统/
    • 自由基/
  • 主控_和_添加
    • 系统/
    • 自由基/
    • 加上/
所有两个分支都包含相同的文件,但
master\u和_adds
包含其他文件夹。现在我切换到
master\u和_adds
,进行一些更改并提交它。如何仅使用
master
中存在的文件更新我的
master
分支?i、 e.我只需复制
系统
,不得复制文件夹
添加


已解决:我在这里找到了答案

如果您希望带来的更改不包括添加或删除文件,您可以

git checkout master
git ls-files -z \
| xargs -0 git checkout master_with_adds --

你完成了。如果您确实想导入添加和删除,最简单的方法可能是手动导入,从那里开始,虽然您可以通过使用
GIT_INDEX_FILE
环境变量来实现完整的过程,通过将所选的
GIT ls tree
输出馈送到
GIT update INDEX--INDEX info
,然后
GIT write tree
来构建完整所需状态的边带索引,和
git read tree-um
ing生成的树以完成转换。这让我觉得有点过头了。

git checkout就可以了。比如:

$ git branch
* master
  master_with_adds
$ git checkout master_with_adds /system /libs
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   .....
#   new file:   .....
#
$ git commit -m "'Merge' code from 'master_with_adds' branch"
[master]: created 4d3e37b: "'Merge' code from 'master_with_adds' branch"
4 files changed, 72 insertions(+), 0 deletions(-)
create mode 100644 ...
$git分支
*主人
主控_与_添加
$git checkout master_与_adds/system/libs
$git状态
#论分行行长
#要提交的更改:
#(使用“git重置磁头…”取消分级)
#
#新文件:。。。。。
#新文件:。。。。。
#
$git commit-m“'master_with_adds'分支中的'Merge'代码”
[master]:创建4d3e37b:“‘master_与_添加’分支的‘合并’代码”
4个文件已更改,72个插入(+),0个删除(-)
创建模式100644。。。

啊!很好的解决方案!我喜欢它)问题是它不会只更新当前分支中存在的文件。