我正在使用Git存储库来处理与我正在开发的网站相关的所有内容.存储库包含与站点相关的所有文件,包括文档,模型,原始分层图像等,以及我放在www子目录中的Web根目录.
我正准备开始整合我选择用于项目其余部分的CMS; CMS是一个开源项目,也使用Git进行管理(如果重要的话,托管在GitHub上).显然CMS需要在www子目录中,但它不会是唯一的东西 - 会有CSS文件,图像,CMS的模板等等.因此,我选择了使用子树合并策略将外部项目添加到我的存储库.因为我可能在某个时候想要修改原始项目并提供更改,我已经从GitHub克隆了CMS存储库并从我的克隆中完成了子树合并.
问题是,外部项目(即CMS)具有我想要包含的子模块.确保子模块集成到主项目中的最佳方法是什么?我是否必须为每个子模块进行子树合并?
我不太可能想要修改子模块,但我可能会有一两个子模块.
这个问题基于这个主题.
我的.gitmodules在我家
[submodule "bin"]
path = bin
url = git://github.com/masi/bin.git
Run Code Online (Sandbox Code Playgroud)
我的文件夹 - 我家的结构:
~
|-- [drwxr-xr-x] bin // this is the folder which I make a submodule
// it is also a folder where I have a Git to push my submodule's files
| -- fileA
` -- folderA
...
Run Code Online (Sandbox Code Playgroud)
我跑
git submodule init # I get no output from these commands
git submodule update
Run Code Online (Sandbox Code Playgroud)
我跑
git submodule foreach git pull
Run Code Online (Sandbox Code Playgroud)
我明白了
Entering 'bin'
fatal: Where do you …Run Code Online (Sandbox Code Playgroud) 我在目录中有几个(大约10-15个)Git存储库:
~/plugins/admin
~/plugins/editor
~/plugins/etc
Run Code Online (Sandbox Code Playgroud)
每个都有自己独立的存储库和远程服务器.
问题是要从我拥有的所有存储库中提取所有更改:
cd ~/plugins/admin
git pull origin master
password: ********
cd ..
cd ~/plugins/editor
git pull origin master
password: ********
cd ..
cd ~/plugins/etc
git pull origin master
password: ********
cd ..
Run Code Online (Sandbox Code Playgroud)
如何设置Git子模块以使用1命令拉出所有存储库,
或者为Windows,Linux和Mac编写脚本(因为我使用所有3个操作系统)来有效地执行相同的操作.请记住,存储库可以位于不同的分支上,并且不一定具有跟踪分支设置.
同样的说明:
我一直试图摆脱子模块以获得一个自包含的存储库,并且子树合并策略似乎与这个用例相匹配.
然而,合并后的回购'历史出现在我自己项目的历史中,这令人讨厌.
我已经尝试了git filter-branch --subdirectory-filter path/to/subtree/ HEAD哪些工作......直到我尝试更新一个子树,git pull -s subtree my-subtree master用于将所有子树的文件重写到项目的根目录.
有没有办法在git中实现这一点?
我在github上有一个项目,它在github中使用其他repos.(我在我的项目中使用了JQuery,backbone.js,underscore.js)我想把这些repos从github拉到我的repo中(可能还有他们的历史记录).有时我想从他们的github repos更新这些代码.但我仍然想在我的回购中提交它们.那可能吗.
我做到了
git submodule add git://github.com/msanders/snipmate.vim.git bundle/snipmate
Run Code Online (Sandbox Code Playgroud)
然后我删除了目录.我该如何还原呢?如何还原其中的文件?
Xcode 4是否有使用git子模块为项目创建快照的问题?
致命:路径'path/to/project/vendor/facebook-ios-sdk/src'在子模块'path/to/project'中
现在,如果它引用git子模块,则此错误消息也是错误的.'path/to/project'不是git子模块.
下一个:
我知道子模块,但有一个奇怪的边缘情况,我想避免为外部存储库的代码保留一个单独的目录.
我的毕业论文有一个LaTeX项目:https: //github.com/jklukas/gradthesis
它使用我保存在一个单独的存储库中的样式文件(供其他人轻松使用):https: //github.com/jklukas/uwthesis
我可以将uwthesis包含为子模块,但LaTeX只在主目录中查找样式文件.在LaTeX中有一些常见的方法,比如在导入样式文件时给出显式路径,但这看起来很难看.
目前,我只是uwthesis.sty在gradthesis回购中保留一份副本.是否可以配置uwthesis为远程并且能够仅针对这一个文件推送更改?
我的个人存储库有一些存储库作为子模块.以及以下命令
$ git submodule foreach git pull origin master
Run Code Online (Sandbox Code Playgroud)
在进入ruby存储库后面对以下结果,因为ruby存储库似乎没有主分支并且"git pull"停止了.
Entering 'rails'
From git://github.com/rails/rails
* branch master -> FETCH_HEAD
Already up-to-date.
Entering 'roo'
From git://github.com/hmcgowan/roo
* branch master -> FETCH_HEAD
Already up-to-date.
Entering 'ruby'
fatal: Couldn't find remote ref master
Stopping at 'ruby'; script returned non-zero status.
Run Code Online (Sandbox Code Playgroud)
所以我的问题是what should I do to git pull for all of submodules only by git command?我应该为此制作一个剧本吗?我希望git提供的一个命令行可以实现这一点.
https://github.com/Uni-/shBrushesCollection
我打开了一个GitHub repo并在GitHub web源编辑器中编写了.gitmodules.当我克隆rpo时,我发现.gitmodules中的子模块没有被初始化.
我想我几乎尝试了所有命令,包括update,init,update --init等等.有没有办法使用当前的.gitmodules文件,而不是子模块添加?
git-submodules ×10
git ×9
github ×2
subtree ×2
bash ×1
batch-file ×1
git-pull ×1
history ×1
repository ×1
xcode4 ×1