我想重新组织一个git repo来管理多个项目。 我有一个
my-org
|--cool-repo
|--file-one
|--file-two
我想做到
my-org
|--cool-repo
|--project-one
|--file-one
|--file-two
|--project-two
我已经阅读了一些git文档,但是我不确定应该学习哪些命令。我不需要合并代码,也不需要删除任何内容。
我不想破坏任何东西。
当我的团队开始第二,第三和以后的项目时,我想组织“子目录”或“子项目”(我不确定使用的术语)来保存与这些新增项目相关的文档。
我该怎么办,或者最好在哪里恢复调查?
谢谢!
答案 0 :(得分:2)
欢迎堆栈溢出。
如果您的代码已提交并推送,几乎没有什么是您不能安全地执行的,因此不必担心会犯错误。
话虽如此,在您的特定情况下,您不需要做很多事情。只需使用project-one
创建新目录mkdir project-one
。使用file-one
将file-two
和git mv file-one file-two project-one
移动到其中,然后使用git commit
提交新更改(git mv命令将自动进行重命名)。
答案 1 :(得分:2)
关于您的情况的几点说明。与SVN和其他传统的源代码管理系统不同,Git的主要目的是为每个存储库托管 1个项目。这绝不是硬性规定,有多种方法可以在单个Git存储库中托管多个项目中的源代码。但是,有两个考虑使用Git subtree
或submodule
的原因。
1。)由于Git是分布式源代码管理管理系统,因此存储库的大小可以更快地增长。这会使克隆回购成为一个大麻烦。
2。)由于Git commit
是对整个存储库的提交,而不仅仅是子文件夹,因此merge
(或等效)分支中的master
可能变得复杂新手。要了解一组提交中的实际更改,分支机构的history
可能更具挑战性。
将一个完整的开发团队提供给一个单独的repo进行克隆以工作整个解决方案可能会有所帮助。对于您的情况,我可能会考虑一个包含Git存储库的{host {1}}或subtrees
的“主机”存储库,其中包含全栈解决方案的不同组件。这样一来,开发人员就可以进行单个克隆并仍然获得完整的源代码。
如果组件紧密耦合并且经常同步更改,我建议使用submodules
。使用submodule
可以减少组件的集成频率和/或按已定义的发布时间表进行集成。