标签: git-submodules

回顾性地添加--recursive到git repo

如果你git clone--recursive,你也可以得到所有的git子模块.

如果我忘记在克隆时添加这个神奇的旗帜,可能会发生,我现在如何去获取任何子模块?

此外,如何将递归标志设置为将来克隆的默认标志?

git version-control git-clone git-submodules

61
推荐指数
2
解决办法
1万
查看次数

有没有办法将Mercurial存储库用作Git子模块?

我很高兴使用子模块来跟踪我的项目所依赖的所有库.问题是我正在使用一个名为core-plot的库,它只有一个公共的mercurial存储库.我可以在一个只读的Git存储库中镜像它,但这是我得到的最佳选择吗?我曾经看到Mercurial中有模块来跟踪Git中的内容.有人知道是否存在相反的方式?

git mercurial git-submodules

59
推荐指数
2
解决办法
9875
查看次数

在.gitmodules中找不到路径和缺少.gitmodules文件的子模块映射

当我运行时git submodule init,我收到以下错误:

在.gitmodules中找不到路径'xxx'的子模块映射

我搜索了一个.gitmodules文件,我无法在任何地方找到它.

我已经在同一主题上阅读了这个最受欢迎的SO问题.但不幸的是,我无法解决问题.特别是考虑到我不再拥有.gitmodules.

根据我的GitHub私人仓库,我仍然有我的存储库的子模块.只是我无法在.gitmodules任何地方找到该文件.

git git-submodules

59
推荐指数
2
解决办法
5万
查看次数

.gitignore文件添加在Git子模块中

我最近重组了我的dotfiles,住在一个Git存储库中~/Dropbox/dotfiles,我正在使用病原体将所有Vim插件捆绑在里面~/Dropbox/dotfiles/home/.vim/bundle.这些插件作为Git子模块添加.

现在的问题是,当我运行Vim时,它会自动生成所有插件的文档,并将它们放在每个子模块目录中.这会将未跟踪的内容添加到子模块中,我希望避免这些内容.

ruby-1.8.7-p330@gs ~/Dropbox/dotfiles ‹master*› $ git st
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#   (commit or discard the untracked or modified content in submodules)
#
#   modified:   home/.vim/bundle/fuzzyfinder (untracked content)
#   modified:   home/.vim/bundle/l9 (untracked content)
#   modified:   home/.vim/bundle/matchit (untracked content)
#   modified:   home/.vim/bundle/ruby (untracked content)
#   ...
no changes …
Run Code Online (Sandbox Code Playgroud)

git vim gitignore git-submodules

57
推荐指数
2
解决办法
1万
查看次数

Git提交公共子模块(master branch)

我有两个或更多的项目(我们称之为ProjectFooProjectBar),它们有一些我放在子模块中的公共代码.

我的理解是,如果我从ProjectFoo中提交子模块的更改,它将处于一个独立的头部,只有所有ProjectFoo克隆才能看到:

(master) $ cd ProjectFooBarCommoneSubmodule/
(master) $ git commit -am "Common code fix."
(56f21fb0...) $ git push
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

这可能是因为master分支没有改变.我可能会做类似的事情git checkout master && git merge Everything up-to-date但看起来很难看.可能git reset --hard master会做同样的事情,但似乎更加丑陋.

如何使用项目共享的公共代码,使用它的那些项目中更新?换句话说,提交到该子模块应该更新使用同一子模块的所有各种存储库(存储库,而不仅仅是克隆).

----编辑----

可见我的签出存储库搞砸了并且坏了.它应该从一开始就像那样(在本例中的ProjectFoo上):

(master) $ cd ProjectFooBarCommoneSubmodule/
(master) $ git commit -am "Common code fix."
(master) $ git push
....
   fbfdd71..0acce63  master -> master
(master) $ …
Run Code Online (Sandbox Code Playgroud)

git commit git-submodules

56
推荐指数
1
解决办法
2万
查看次数

强制Git子模块始终保持最新状态

我喜欢git子模块.另外,我讨厌git子模块.我喜欢他们的是它如何使你能够干净地划分依赖关系等等.我明白让他们指出一个回购的特定提交,我这样做.但在我的情况下,我正在构建一个将在另一个项目中使用的库,所以我想把它保存在那个单独的repo中.

然而,当我每天在这个库上工作时,烦恼就来了,我不得不使用我的库切换回app来提交指针更新.

那么,当我不断更新并添加到这个库时,是否有可能让git子模块始终位于它所指向的repo的头部?

git git-submodules

54
推荐指数
2
解决办法
3万
查看次数

如何只更新特定的git子模块?

因此,更新我的所有子模块都是通过运行来完成的

git submodule foreach 'git pull origin master'
Run Code Online (Sandbox Code Playgroud)

如何在不更新任何其他子模块的情况下更新特定的子bundle/syntastic模块?

git git-submodules

51
推荐指数
4
解决办法
4万
查看次数

无法跟踪Git子模块中的文件

问题:当我没有文件时,也没有任何文件时,将文件添加./shells/smallApps/*到Git ../.git/./.git/info/exclude.gitignore

这个问题是基于这个问题没有完全解决的问题.

我跑

$git status                                                                                                                                          ~/bin
# On branch master
nothing to commit (working directory clean)
$git ls-files                                                                                                                                        ~/bin
Screen/dev/vim-open.screen
--- cut ---
Run Code Online (Sandbox Code Playgroud)

我注意到我的Git上没有"shells/smallApps/*"文件

$ls shells/smallApps/                                                                                                                                ~/bin
devTodo     extract     
                                                                                                                                             ~/bin
Run Code Online (Sandbox Code Playgroud)

我想通过运行将它们添加到我的Git中

$git add shells/smallApps/devTodo shells/smallApps/extract
fatal: Path 'shells/smallApps/devTodo' is in submodule 'shells/smallApps'
$git add .         
Run Code Online (Sandbox Code Playgroud)

我注意到由于某种原因,这些文件没有添加到我的Git中

$git status                                                                                                                                          ~/bin 
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

我没有.git/info/exclude和.gitignore -files的文件.

最后警告是什么意思?

git add git-submodules

50
推荐指数
1
解决办法
3万
查看次数

从GitHub克隆项目后拉git子模块

我有一个项目已经指定了子模块.开发机器上的一切都运行良好.我已经.gitmodules提交文件并继续制作.但它没有拉出子模块.

如果我进入子模块目录并调用git pull,则没有任何反应.

在新项目中提取这些子模块的正确方法是什么?

git git-submodules

50
推荐指数
4
解决办法
2万
查看次数

'git submodule update --init --recursive'VS'git submodule foreach --recursive git submodule update --init'

我有git repo,它有嵌套的子模块.以下2个命令有什么区别?

git submodule update --init --recursive

git submodule foreach --recursive git submodule update --init
Run Code Online (Sandbox Code Playgroud)

git git-submodules

50
推荐指数
3
解决办法
5万
查看次数