我有一个Git存储库,里面有几个子模块.如何git submodule init在运行后列出所有子模块的名称?
该git submodule foreach命令可以回显子模块的名称,但只有在检出后才能使用,这在init步骤之后没有发生.链中有更多的步骤需要在签出之前发生,我不希望将子模块的名称硬连接到脚本中.
那么是否有一个Git命令来获取所有当前已注册但尚未检出的子模块的名称?
有些人(我认为在1.6.x版本附近)git意识到了子模块内部的变化.那只会让我烦恼:
$ git status vendor | grep modified: # modified: vendor/rails (modified content)
$ git diff vendor/ diff --git a/vendor/rails b/vendor/rails --- a/vendor/rails +++ b/vendor/rails @@ -1 +1 @@ -Subproject commit 046c900df27994d454b7f906caa0e4226bb42b6f +Subproject commit 046c900df27994d454b7f906caa0e4226bb42b6f-dirty
请停止?
好的,我有答案.现在我有另一个问题:
我可以把它放进去~/.gitconfig吗?从我最初看起来我不能,并且我没有看到任何有希望通过略读补丁.(我想我仍然可以做别名.)
这是我想要的:
REPO-A
/.git
/otherFiles
/REPO-B
/.git
/moreFiles
Run Code Online (Sandbox Code Playgroud)
我希望能够将所有 REPO-A的内容推送到REMOTE-A并且只将 REPO-B 推送到REMOTE-B.
可能?
我project_dir/vendor/submodule_one每次运行时git status都会在项目中添加一个子模块modified: vendor/submodule_one (new commits).
我的问题是解决这个问题的最佳方法是什么?我是否将vendor/submodule_one-folder 添加到my中,.gitignore因为我的主项目不应该知道我的子模块的细节?
或者当我更改并提交对子模块的更改时,我是否还需要在我的主项目中进行提交?
刚刚开始使用子模块,除了设置它们之外似乎找不到太多信息.
我最近重组了我的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 submodule foreach 'git pull origin master'
Run Code Online (Sandbox Code Playgroud)
如何在不更新任何其他子模块的情况下更新特定的子bundle/syntastic模块?
我使用病原体来组织我的vim插件.我git将插件从github克隆到vimbundles目录中.这样,更新它们很简单.
我对病原体产生的标签有问题.如果插件没有在其代码中包含标签,则病原体通过调用生成它们pathogen#helptags().标签生成到doc插件的文件夹中.然后这些文件在git存储库中显示为未跟踪.
你知道如何在不同的位置生成标签吗?所有标签都可以在同一个地方,目标不是将它们生成到插件所在的目录.病原体可以说服吗?