为每个项目使用“主题分支”:
git checkout master
git add file.r ;# this is your master template upon which others are based
git commit -m "Committed the master file"
然后对于每个项目:
git checkout -B <project> master ;# create and checkout <project> branch
<hack away on file.r, commit when you want>
git push origin <project> ;# to share <project> with others
所以在实践中,你最终会得到master
,比如说,,project1
等等都是基于它的。应该完全按照您的意愿行事,并保持一切正常。project2
project3
与其他鼓励多个存储库的解决方案相比,此解决方案的优势:
- 更容易管理。您只有一个存储库,实际上最多有 20-30 个分支?听起来很多,但通过清晰的标签很容易知道你在哪里,特别是如果你只管理一个小文件集。
- 如果你很懒(就像我一样),那么容易区分。
file.r
您可以看到两个项目之间的文件差异git diff projectA projectB -- file.r
。您可以对多个存储库执行相同的操作,但它需要一个存储库规范,例如git diff projectA/master projectB/master -- file.r
. 如果您有 20-30 个项目存储库或使用子模块,可能会感到困惑。
- 轻松更新。获取更新就像发布
git fetch origin
和观察输出一样简单。
- 轻松克隆。设置新的本地存储库时,您克隆了一个远程。无需克隆原点,然后再克隆
git remote add <project>
存储库,直到您拥有它们为止。
缺点(不完整的列表):
- 此方法依赖于您密切关注已签出的分支。有关目录结构的任何内容都不会提示您,因此
file.r
在任何给定时刻您正在查看的内容可能都不那么明显。这可能会破坏交易。我不知道。我想这取决于您的工作流程。
- 正如 KurzedMetal 在评论中指出的那样,如果您需要将所有项目合并为一个,这可能会很快变得一团糟。因此,我不建议将它用于源代码。然而,对于不同的
R
项目,这可能不是一个问题。