Git - 从模板项目合并 - 没有子目录

时间:2012-02-02 02:33:04

标签: git merge git-merge

我想知道这是否会起作用......

假设我有一个类似的项目模板:

.
+ 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步骤以集成到项目中。

这是正确的方法,还是有更好的方法来做到这一点?

我是否会在这条赛道上遇到麻烦?

由于

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是在模板仓库中设置模板分支。各个项目的每个克隆都有一个从模板分支创建的分支。如果要从模板更新,只需获取然后合并原始/模板。分支机构的名称由您决定。这只是一个建议。

我不建议改变这可能会导致你的项目经历相当多的痛苦,如果有一天,一个大的变化 - 特别是在一个项目有很多提交的很长一段时间之后。你的生活将是一个漫长的过程。