gpt4 book ai didi

git - 我应该使用 Git 分支来存储不相关的代码吗?

转载 作者:太空狗 更新时间:2023-10-29 14:38:06 25 4
gpt4 key购买 nike

我有一个关于非标准 git 分支策略的问题。

假设我有很多小文件,例如脚本,它们在很大程度上彼此无关。假设我将它们分成不同的概念分组,然后将每组文件依次提交到不同的空分支。所以我会有一个空的主控和分支,例如 foo 文件、bar 文件等,每个分支都包含完全不同的文件和文件夹结构。

一些其他要求

  • 分支永远不必 merge 到 master。但可以相互 merge ,根据一些命名约定,例如:foo-files-master > foo-files-bobswork

  • 绝对不想要单独的 repo ,因为在某些情况下,我们只讨论 1 或 2 个概念上相关的文件,不足以证明单独 repo 的管理开销是合理的.

  • 我不太愿意将所有目录放在同一个分支上,因为当我只对几千个文件感兴趣时,我不想克隆所有文件。

这是可取的吗?以后它会咬我吗?

我搜索并搜索了有关此方法的任何信息,但没有找到太多信息。我找到了'orphan branches ' 这看起来是相关的。我要测试这个。但是暂时忽略这个特性,拥有一堆分支有什么缺点吗,源于一个空的 master,每个分支都有完全不同的文件结构?

最佳答案

正如您提到的,您可以使用孤立分支来完成此任务。

git checkout --orphan script-branch
git reset --hard
touch my-script.sh
git add my-script.sh
git commit -m 'Script commit'

现在,如果您执行 git log,您将只会在历史记录中看到“脚本提交”。

这种方法本质上没有错,但有一些优点和缺点:

优点:

  • 低开销:已经有权访问您的存储库的每个人都可以轻松访问您的新分支。您所要做的就是检查分支机构,然后就可以开始了。

  • 分离:由于您的脚本在一个单独的分支中,因此它们可以单独维护并拥有自己单独的 git 历史记录。

缺点:

  • 不寻常的组织:通常人们期望分支是主分支的修改版本。您需要向其他开发人员阐明您的方案。

  • 不能同时访问这两者:当您已 check out 主控时,您将无法访问您的脚本,反之亦然。您可以通过克隆您的存储库两次来解决此问题,但这可能会使事情复杂化。

  • 重克隆:您提到一个单独的分支将使您不必克隆整个存储库,但无论如何您都会这样做。如果你正常运行 clone,git 将克隆包括你的 master 分支在内的每个分支,而不管你 checkout 的是哪个分支。您可以使用 --single-branch 标志来仅克隆一个分支,但这会在某种程度上抵消将分支放在同一存储库中的实用性。

备选方案:

  • 将您的脚本包含在您的 master 分支的目录中。是的,这意味着您必须克隆整个存储库才能获取脚本。但如果脚本与你的 master 分支中的代码相关,这是最简单和最标准的解决方案。

  • 为您的脚本创建一个单个新存储库。然后,您可以使用目录对相关脚本进行分组。这为您节省了为每组脚本创建单独存储库的开销,但仍然允许您单独克隆它。

关于git - 我应该使用 Git 分支来存储不相关的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27260883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com