Git 和子模块的使用

标签 git version-control

所以,我有以下文件夹结构:

.
└── testSubModules
    ├── README.md
    └── controllers
        ├── controller-1
        │   └── test.c
        ├── controller-10
        ├── controller-2
        ├── controller-3
        ├── controller-4
        ├── controller-5
        ├── controller-6
        ├── controller-7
        ├── controller-8
        └── controller-9

testSubMoudles 是我的 git 目录的根目录。 controllers 目录下的每个文件夹代表 eclipse

中的一个项目

我希望能够在根 (testSubModules) 以及项目下的每个单独项目中管理项目。

我认为submodules是我要找的。

要求/目标/期望的工作流程

  1. 新开发人员应该能够从根本上获得项目

git clone url/subModules

或按个别项目

git clone url/subModules/controller-1

阅读该教程后,我认为这是不可能的。

  1. 开发人员如何才能仅在子模块上提交和推送更改?

假设我在 controller-1 下做了一些工作。将我的更改添加到该子模块的工作流程是什么

  1. 假设,Eric,另一个开发人员现在想要我对子模块的更改,他如何更新他的工作区?

  2. 假设,James,另一个开发人员想要一切,然后他可以在项目的根目录上执行 git pull

也许我所说的一切都不是子模块的预期用途。那我该怎么办呢?

最佳答案

使用 Rakefile 概念:在项目中你可以组合多个项目:

desc 'submodule' task :submodule do sh 'git submodule init' sh 'git submodule update' sh 'git submodule add <origen>'.. .. end desc 'submodulePull' task :submodulePull do sh 'git submodule update' sh 'git submodule foreach git pull' end 终端:

rake submodule to add other project in your project .

cd project to use project independently. can run git etc..

rake submodulePull to pull all project change .

submodule link

关于Git 和子模块的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656743/

相关文章:

git - 缓慢的 Git 操作

svn - svn的双重性 :ignore

git - 我可以运行一个使用一个 git 分支的程序,同时在另一个分支上工作吗?

svn - 在SVN中的分支之间合并单个文件是 "safe"吗?

git - 如何在一行中使用日期时间和文件名进行 git log

c++ - 如何在 C++ 中打开 Nano 并从中获取字符串?

Git删除具有不同大小写的相同文件

git - 如果我在本地有 10 个分支,如何将它们推送到远程源服务器?

visual-studio-2008 - 如何使用 Visual Source Safe 2005?

sql - 数据库中大型集合的版本控制以用于撤消目的