你要管理的git子项目2的主要选择。
Git不会有任何依赖性经理和最常用的选项如下:
Submodules
允许将外部存储库嵌入源树的专用子目录中,始终指向特定的提交。
git submodule
为了使用子模块的每个文件夹将是一个独立的存储库,并进行管理,并存储在不同的位置。 Git将签出特定的提交(提交,版本,标签等)并将其用作子模块的HEAD。大多数情况下子模块将处于分离的HEAD中。
# once you have a repo simply add it to git
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
此选项仅适用于update命令。使用子模块的远程跟踪分支的状态,而不是使用超级项目的已记录的SHA-1来更新子模块。
这相当于在每个子模块中运行git pull。
如何解决或子模块内部的变化代码?
使用子模块将会把你的主要项目中的代码作为其内容[新文件夹]的一部分。
将它置于文件夹内部或将其作为子模块的一部分之间的区别在于,在子模块中,内容被管理(提交)到不同的独立存储库,如上所述。
这是一个子模块 - 项目在另一个项目中,其中每个项目是一个独立的项目的说明。
git subtree
的Git树允许你插入任何存储库中的另一个
一个子目录非常相似,submodule
,但主要区别在于代码的管理位置。在子模块中,内容被放置在单独的回购站中,并在那里进行管理,以便您将其克隆到其他许多回购站。
subtree
被管理内容作为根项目的一部分,而不是在一个单独的项目。
而不是写下如何设置和理解如何使用它,你可以简单地阅读这个优秀的文章,这将解释这一切。
https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/
使用子模块进行调查。他们并不完美,但他们可能会解决你的问题。 –
@TimBiegeleisen:链接?而且 - 你的意思是说这是GitHub功能还是git功能? – einpoklum
这是一个:http://blog.joncairns.com/2011/10/how-to-use-git-submodules/ –