问题: 每次尝试将子树拉取时,即使我没有进行任何更改,也会出现合并冲突。
我的做法:
在子树仓库中:
# Make some changes
$ git commit -am 'Changes made'
$ git push origin master
在 主版本库 中。
$ git subtree add --prefix public/common {{subtree-repo}} master --squash
# Make some changes
$ git commit -am 'Changes made'
$ git subtree push --prefix public/common {{subtree-repo}} master
在子树仓库中
$ git pull origin master
# Make some changes
$ git commit -am 'Changes made'
$ git push origin master
在主存储库中
$ git subtree pull --prefix public/common {{subtree-repo}} master --squash
这就是事情爆炸的地方。拉取给了我:
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From {{subtree-repo}}
* branch master -> FETCH_HEAD
a53e6fc..c078461 master -> {{subtree-repo}}/master
Auto-merging public/common/README.md
CONFLICT (content): Merge conflict in public/common/README.md
Automatic merge failed; fix conflicts and then commit the result.
我没有做任何更改,为什么会出现合并冲突呢?
我想实现的目标是:我有一个基于 Cordova 构建的 Web 项目和移动项目。因为它们都使用 JavaScript,所以我有几个组件和模型希望在两者之间共享。我想把这些通用的东西放在两者之间的一个共享文件夹中,这样我就不必复制粘贴了。我研究了子模块和子树的利弊,并决定采用子树。现在这是一个单人项目,但我希望按正确的方式进行,以便未来可以扩展。
注意:如果您对我想要完成的工作有更好的建议,那将是非常棒的 :-)