我的本地仓库中有2个分支 - 主(核心文件)和master_with_adds(核心+附加配置)
所有2个分支包含相同的文件,但master_with_adds
包含其他文件夹。现在我切换到master_with_adds
,进行一些更改并提交。如何仅使用master
中存在的文件更新master
分支?即我必须只复制system
和libs
,不得复制文件夹adds
。
答案 0 :(得分:1)
如果您想要带来的更改不包括添加或删除文件,您可以
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
生成的树以完成转换。这让我觉得有点矫枉过正。
答案 1 :(得分:0)
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 ...