我应该使用Git分支来存储无关的代码吗?
我有一个关于非标准git分支策略的问题 比如说,我有很多小文件,比如脚本,它们基本上彼此不相关。假设我将这些文件分成不同的概念组,然后将每组文件依次提交到不同的空分支。因此,我将有一个空的主文件和分支,如foo文件,bar文件等,每个包含完全不同的文件和文件夹结构 其他一些要求我应该使用Git分支来存储无关的代码吗?,git,version-control,branch,Git,Version Control,Branch,我有一个关于非标准git分支策略的问题 比如说,我有很多小文件,比如脚本,它们基本上彼此不相关。假设我将这些文件分成不同的概念组,然后将每组文件依次提交到不同的空分支。因此,我将有一个空的主文件和分支,如foo文件,bar文件等,每个包含完全不同的文件和文件夹结构 其他一些要求 分支永远不必合并为主分支。但根据一些命名约定,它们可能相互兼容,比如:foo files master>foo files bobswork 我绝对不想要单独的回购,因为在某些情况下,我们只讨论1或2个概念上相关的文件
- 分支永远不必合并为主分支。但根据一些命名约定,它们可能相互兼容,比如:foo files master>foo files bobswork
- 我绝对不想要单独的回购,因为在某些情况下,我们只讨论1或2个概念上相关的文件,不足以证明单独回购的管理开销是合理的
- 我很犹豫是否将所有目录放在同一个分支上,因为我不想在只对两千个目录感兴趣时克隆所有文件
我搜索了很多关于这种方法的信息,没有找到多少。我找到了似乎相关的“”。我要测试一下这个。但是,暂时忽略这一特性,拥有一堆来自空主机的分支,每个分支都具有完全不同的文件结构,这有什么坏处吗?正如您所提到的,您可以使用孤立分支来实现这一点
git checkout --orphan script-branch
git reset --hard
touch my-script.sh
git add my-script.sh
git commit -m 'Script commit'
现在,如果您执行一个git日志
,您将只在历史记录中看到“脚本提交”
这种方法本身没有什么错,但有一些优点和缺点:
优点:
- 低管理费用:您的新分支机构很容易被所有已经有权访问您的回购协议的人访问。你所要做的就是结帐,然后你就可以出发了
- 分离:由于脚本位于单独的分支中,因此它们可以单独维护,并具有各自的git历史记录
- 不寻常的组织:通常人们希望分支是主分支的修改版本。您需要向其他开发人员说明您的方案
- 不能同时访问这两个脚本:当您签出master时,您将无法访问脚本,反之亦然。你可以通过克隆你的回购协议两次来解决这个问题,但这可能会使事情复杂化
- 重克隆:您提到单独的分支将使您不必克隆整个存储库,但无论如何您都会这样做。如果您正常运行克隆,git将克隆每个分支,包括您的主分支,而不管您签出了哪个分支。您可以使用
标志仅克隆一个分支,但这会在某种程度上使分支位于同一repo中的实用程序无效--single branch
- 将脚本包含在主分支的目录中。是的,这意味着您必须克隆整个存储库才能获取脚本。但是,如果脚本与主分支中的代码相关,那么这是最简单、最标准的解决方案
- 仅为您的脚本创建一个新回购协议。然后可以使用目录对相关脚本进行分组。这为您节省了为每组脚本单独创建repo的开销,但仍然允许您单独克隆它
git
及其分支是工具。没有任何技术限制会阻止您这样做。所以这只是常规。我遇到的唯一问题是做git签出的时间可能很重要。谢谢你这么好的回复。