我正在开发一个JGit
的桌面应用程序,以便构建一个用于存储文件的云系统。
现在,有几个用户为同一个存储库做出了贡献,但并不是每个人都有兴趣使用整个项目。
例如,我正在与其他人一起开发具有MVC
架构的软件,我只需要访问项目的controller-subdirectory。为此,当我clone/pull/push
存储库时,我想要使用我需要的部分。我看到了使用git
创建子模块或结帐的可能性,但我不知道我的问题是否正确。
答案 0 :(得分:2)
简单的答案是你能做到,但答案很长:
Git商店快照 ALL 每个提交操作系统中repo的内容如果您只想使用其中的一部分,您基本上只需要检查所需的部分你需要的,当你提交时,你需要拥有当前提交的所有内容。
所以你可以做到这一点,但你不会通过这样做获得任何东西。
你提到你听说过亚模式。
您可以尝试阅读有关子模块的内容。
Submodules
允许将外部存储库嵌入到源树的专用子目录 中,总是指着一个特定的提交。
git submodule
强> 将你的大项目打破到子项目,就像你到目前为止一样 现在使用以下命令将每个子项目添加到主项目中:
git submodule add <url>
将预测添加到您的仓库后,您必须初始化并更新它。
git submodule init
git submodule update
从 Git 1.8.2 添加了新选项--remote
git submodule update --remote --merge
fetch
每个子模块中上游的最新更改 merge them in
和 check out
子模块的最新版本。
正如the docs所描述的那样:
--remote
此选项仅对更新命令有效。不使用超级项目记录的SHA-1来更新子模块,而是使用子模块的远程跟踪分支的状态。
这相当于在每个子模块中运行git pull。
但是,如何在C中的错误修复方案中推送提交,这会影响与父层共享的代码?
再次:使用子模块会将代码放在主项目中作为其内容的一部分。将它本地放在文件夹中或将其作为子模块的一部分之间的区别在于,在子模块中,内容被管理(提交)到不同的独立存储库。
这是子模块的一个例子 - 项目在另一个项目中,每个项目都是一个独立的项目。
git subtree
强> Git子树允许您将任何存储库作为另一个存储库的子目录插入
与submodule
非常相似,但主要区别在于管理代码的位置。在子模块中,内容放在一个单独的仓库中,并在那里进行管理,允许您将其克隆到许多其他仓库。
subtree
正在将内容作为根项目的一部分进行管理,而不是在单独的项目中。
不是写下如何设置它并理解如何使用它,你可以简单地阅读这篇能够解释它的优秀文章。
https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/
答案 1 :(得分:0)
您可以为它创建新分支。 Git - Branches,这是一个教程。
当您完成工作时,将项目合并,以便项目中的每个人都可以看到影响。