yas*_*sar 10 git git-submodules
我有一个用git管理的django项目.我是git把它推给我的主人.现在,我希望能够将其中一个目录(包括所有子目录)推送到另一个git仓库.如果可能的话,怎么可能呢?
编辑:所以我希望该目录本身就是一个git repo.
Mar*_*air 22
你可以看一下git 对子模块的支持.您可以将第二个存储库添加为主项目的子模块,例如使用以下命令:
git submodule add git://wherever/blah.git library-code
git commit -m "Added a new submodule called 'library-code'"
Run Code Online (Sandbox Code Playgroud)
当您更改到library-code子目录时,就好像父存储库不存在一样 - 您可以更改origin为使用可以推送的传输,然后将其推送为完全独立.
要指定您希望子模块位于特定版本,您应该更改为子模块并使用git checkout切换到正确的版本.然后,您将更改回主存储库并暂存并提交新的子模块版本:
git add library-code
git commit -m 'Change the submodule version'
Run Code Online (Sandbox Code Playgroud)
主存储库的树只存储子模块应该处于的版本,因此当您推送主存储库时,它不会推送子模块中的任何文件.
为了拆分这个子目录,同时保留历史记录,你需要克隆原始存储库和用户git filter-branch来重写历史记录,如下面的答案中所述:
然后,您可以将其推送到新创建的存储库GitHub存储库,返回到原始项目,删除子目录,并将其替换为子模块,如上所述.
如果您对git概念不是很熟悉,那么这对您来说可能很难 - 我建议您事先阅读git子模块.
| 归档时间: |
|
| 查看次数: |
11053 次 |
| 最近记录: |