我正在尝试将内核目录及其子目录从一个分支合并到另一个分支。结果不受子树路径的约束。 我设置了两个存储库,并将其中一个添加为另一个的远程分支。 以下是分支布局和合并结果。您可以看到,驱动程序目录中的文件“ abc.c”也已合并。我假设作为子树参数给出的路径是合并的开始,但不是。如果我尝试使用内核,那真是一团糟。我究竟做错了什么。 git的版本是1.9.1。
repo mine:
drivers
./drivers:
gpu
./drivers/gpu:
drm mine.h
./drivers/gpu/drm:
mine.a mine.b
repo theirs:
drivers
./drivers:
gpu
abc.c
./drivers/gpu:
drm theirs.h
./drivers/gpu/drm:
theirs.a theirs.b theirs.c
cd mine
git remote add theirs ../theirs
git fetch fetch theirs
git checkout -b new theirs/master
git checkout master
git branch -a
dev
* master
remotes/dev/master
cd drivers/
git merge --no-ff -s recursive -X subtree=gpu new
cd ..
ls -R
drivers
./drivers:
abc.c gpu
./drivers/gpu:
drm mine.h theirs.h
./drivers/gpu/drm:
mine.a mine.b theirs.a theirs.b theirs.c