我想知道这是否会起作用......
假设我有一个类似的项目模板:
.
+ resources/
+ images/
1.png
2.png
我想将此项目用作其他项目的模板,因此它们将基本上从模板“克隆”,但作为单独的存储库进行维护。
但是,我仍然希望能够在模板出现时从模板中提取更新(但不要小心推送)。
子模块或子树合并似乎不适合这里,因为它没有克隆到子目录中;它有效地“映射”到根目录或新项目。
我认为可能有效的一个是这样的:
#setup project
mkdir proj1
cd proj1
git init.
touch .gitignore
git add .gitignore
git commit -m "Initial Commit"
#setup main repo
git remote add origin git@server:proj1.git
git push origin master
# load template repo as separate remote
git remote add -f template git@server:template.git
# import into current master
# here I guess I have the choice of either:
git merge template/master
# OR
git rebase template/master
然后在模板项目上更新:
.
+ resources/
+ images/
1.png
2.png
3.png <-added file
我应能够执行git pull template master
从模板中提取更改并重复上一次合并/ rebase步骤以集成到项目中。
这是正确的方法,还是有更好的方法来做到这一点?
我是否会在这条赛道上遇到麻烦?
由于
答案 0 :(得分:1)
执行此操作的最佳方法是在模板仓库中设置模板分支。各个项目的每个克隆都有一个从模板分支创建的分支。如果要从模板更新,只需获取然后合并原始/模板。分支机构的名称由您决定。这只是一个建议。
我不建议改变这可能会导致你的项目经历相当多的痛苦,如果有一天,一个大的变化 - 特别是在一个项目有很多提交的很长一段时间之后。你的生活将是一个漫长的过程。