我有这个git存储库,其中包含两个文件夹:binary-search和poker.例如,http://github.com/soulnafein/code-katas
我想将这些文件夹放入子模块并保留其更改历史记录.
我怎样才能做到这一点?
这可能吗?想象一下,我有父母和孩子的项目.两者都是git存储库.Child是Parent的子模块.
我是否可以对Parent内部的Child版本进行编辑并提交和推送它们就像常规存储库一样?
或者我需要在某个地方单独克隆Child,我对其进行了更改?
谢谢.
我有一个git repo,里面有一个git子模块.子模块托管在bitbucket上.我想将子模块的本地副本更新为其最新提交.我厌倦了" git submodule update "但是没有做任何事情.所以我尝试删除子模块文件夹然后执行" git submodule init "但是它只是提取初始子模块提交,而不是最新的.
如何让我的本地子模块更新到最新的提交?
我正在使用一个git子模块(我们称之为SubmoduleRepo),这样我就可以将我的模块包含在几个项目中.
我可以从任何使用它的项目中提交SubmoduleRepo.
我可以非常轻松地更新,提交和推送到SubmoduleRepo.
每当我在包含SubmoduleRepo的项目中的目录中工作时,我都需要执行一个提交钩子(当我在SubmoduleRepo中工作时,提交钩子按预期执行)
子模块的dir中没有.git文件夹(仅指定当前目录路径的.git文件).
我已经将我的一个库的git子模块克隆到我正在进行的项目中.问题是,在克隆之后,我需要更改克隆子模块中的一些行,但我不想将这些更改推送到原始存储库中.
我希望这些更改留在超级项目中.这可能吗?我怎样才能做到这一点?
编辑:正如@GoZoner所说,基本上是:
然后,当我在另一台计算机中克隆超级项目时(直到第4步),我希望在超级项目中保存这些更改.
我试图从项目中删除一个子模块
尝试了 rm -rf .git/modules/submodulePath
之后我就遇到了这个问题
致命的:不是git存储库
在我的项目中,我有一些git子模块,但是这些不是实际的构建依赖项,并且需要花费一些额外的时间才能进入,可能会使构建时间增加一倍或三倍.
有没有办法告诉特拉维斯跳过这个无用的步骤?
我创建了一个项目submodule并将其放在Github上.
我创建了另一个项目,supermodule然后做了这个:
cd supermodule
git init
mkdir lib
git clone git://github.com/tandu/submodule lib/submodule
git submodule add ./lib/submodule lib/submodule
Run Code Online (Sandbox Code Playgroud)
这工作正常,但在网站上,它在查看文件时找不到子模块的链接(实际上它只是说"永远加载提交数据").子模块文件夹本身是正确的origin.
显然,我应该做的是
...
mkdir lib
git submodule add git://github.com/tandu/submodule lib
Run Code Online (Sandbox Code Playgroud)
......但现在已经太晚了.如何正确指向此项目中的子模块origin?
我有一个GitHub存储库,并使用另一个项目作为子模块.这个子模块也在.gitmodules,代码如下:
[submodule "inc/tha"]
path = inc/tha
url = git://github.com/zamoose/themehookalliance.git
Run Code Online (Sandbox Code Playgroud)
另请参见GitHub.

我怎么能这样做,所以从GitHub下载我的存储库还将包括子模块中的文件?
我有一个带有2个目录和多个分支的git仓库,我想拆分它们并创建所有分支
`-- Big-repo
|-- dir1
`-- dir2
Branches : branch1, branch2, branch3 ...
Run Code Online (Sandbox Code Playgroud)
我想要的是
我想将dir1和dir2拆分为两个独立的repos并在两个存储库中保留branch branch1,branch2 ....
dir1
Branches : branch1, branch2, branch3 ...
dir2
Branches : branch1, branch2, branch3 ...
Run Code Online (Sandbox Code Playgroud)
我尝试了什么:
我能够将它们分成2个回购
git subtree split -P dir1 -b dir1-only
git subtree split -P dir2 -b dir2-only
Run Code Online (Sandbox Code Playgroud)
但是,分离后不会创建任何分支.
要获得所有分支:
git checkout branch1 (in Big-repo)
git subtree split -p dir1 -b dir1-branch1
git checkout branch2 (in Big-repo)
git subtree split -p dir1 -b dir1-branch2
And push these branches to newly created …Run Code Online (Sandbox Code Playgroud)