我正在尝试从外部github仓库获取一个文件夹,以便在我的项目中使用.
我希望我的项目设置如下:
-my_project
-submodule
-code.py
-MY_README
-.git
Run Code Online (Sandbox Code Playgroud)
我有一个名为some-submodule的远程repo,结构如下:
-submodule
-code.py
-README
-.gitignore
Run Code Online (Sandbox Code Playgroud)
所以我只想将子模块文件夹添加到我的项目中.
但是之后我最终得到了这个
git submodule add http://github.com/user/submodule.git submodule
-my_project
-submodule
-submodule
-code.py
-README
-.gitignore
-MY_README
-.gitignore
Run Code Online (Sandbox Code Playgroud)
我是git的新手所以我真的不知道是否可以使用git.如果它有一些帮助我在Windows上使用msysgit.
那么,无论如何我可以从公共仓库中获得一个干净的子模块文件夹吗?
我们有两个独立的rails_app,foo/并且bar/(有充分理由分开).它们都依赖于common/文件夹中的某些模型等,目前平行于foo和bar.
我们当前的svn设置用于svn:externals共享common/.本周末我们想试试git.经过大量研究,似乎解决这个问题的"犹太教"方法正在使用git submodule.我们得到了分离工作后foo,bar,common到单独的存储库,但后来意识到所有的附加条件:
- 在提交父级之前始终提交子模块.
- 在推送父模板之前始终按下子模块.
- 在提交之前,确保子模块的HEAD指向分支.(如果您是bash用户,我建议使用git-completion将当前分支名称放在提示符中.)
- 切换分支或拉动更改后始终运行'git submodule update'.
所有这些陷阱不是更复杂的是add,commit,push.我们正在寻找更简单的方法来分享commongit.这个家伙似乎已经成功使用git subtree扩展,但是与标准gitand的偏差仍然看起来并不那么简单.
鉴于我们的项目结构,这是我们能做的最好的吗?我对rails插件/引擎知之甚少,但这似乎是一种可能的RoR-ish方式来共享库.
提前致谢.