我怎样才能最简单地重新组织一个git存储库?

问题描述 投票:3回答:2

我想重新组织一个git仓库来管理多个项目。我有一个喜欢

my-org
|--cool-repo
   |--file-one
   |--file-two

我想这样做

my-org
|--cool-repo
   |--project-one
      |--file-one
      |--file-two
   |--project-two

我已经阅读了一些git文档,但我不确定我应该学习哪些命令。我不需要合并代码,或者,net,删除任何东西。

我不想破坏任何东西。

当我的团队启动第二,第三和更晚的项目时,我想组织“子目录”或“子项目”(我不确定使用的术语)来保存与这些添加的项目相关的文档。

我该怎么做,或者我最好在哪里恢复调查?

谢谢!

git
2个回答
2
投票

欢迎来到Stack Overflow。

如果你提交和推送你的代码,几乎没有什么是你不能安全做的,所以不要担心犯错误。

话虽如此,在您的具体情况下,您不需要做太多。只需使用project-one创建新目录mkdir project-one。使用file-onefile-twogit mv file-one file-two project-one移动到其中,然后使用git commit提交新的更改(git mv命令将自动暂存重命名)。


2
投票

关于你的情况的几个笔记。与SVN和其他传统的源代码管理系统不同,Git主要用于为每个repo托管1个项目。这绝不是一个硬性规则,有一些方法可以在一个Git仓库中托管来自多个项目的源代码。但是考虑使用Git subtreesubmodule有两个原因。

1.)因为Git是一个分布式源代码控制管理系统,所以存储库的大小可以更快地增长。这可能会使克隆成为一个巨大的痛苦。

2.)因为Git commit是对整个仓库的承诺而不仅仅是一个子文件夹,所以merge(或等效的)分支的master可能会让新手变得复杂。并且分支的history可能更难以理解在一组提交中真正改变的内容。

为完整解决方案提供一个完整的开发团队可以帮助克隆一个单独的回购。在你的情况下,我可能会考虑一个包含subtreessubmodules的“主机”仓库到包含全栈解决方案的不同组件的Git仓库。这将使开发人员能够执行单个克隆并仍然获得完整的源代码。

如果组件紧密耦合并经常同步更改,我建议使用submodule。使用subtree是组件集成频率较低和/或定义的发布计划。

© www.soinside.com 2019 - 2024. All rights reserved.