假设我的设置看起来很像
phd/code/
phd/figures/
phd/thesis/
Run Code Online (Sandbox Code Playgroud)
由于历史原因,这些都有自己的git存储库.但我想将它们合并为一个,以简化一些事情.例如,现在我可能会进行两组更改,并且必须执行类似的操作
cd phd/code
git commit
cd ../figures
git commit
Run Code Online (Sandbox Code Playgroud)
表演(现在)很棒
cd phd
git commit
Run Code Online (Sandbox Code Playgroud)
似乎有几种方法可以使用子模块或从我的子存储库中提取,但这比我正在寻找的要复杂一些.至少,我很高兴
cd phd
git init
git add [[everything that's already in my other repositories]]
Run Code Online (Sandbox Code Playgroud)
但这似乎不是一个单行.有什么git可以帮助我吗?
我创建了一个简单的git repo(让我们称之为repo#1)并克隆它.
如何将repo#3添加到repo#2中,这样当我将repo#2推送到repo#1时,我可以单独复制repo#1,我还可以访问repo#3的历史记录等.
换一种说法.如何创建包含另一个git存储库的git存储库?
我目前使用subversion来跟踪我对Emacs的配置更改,并将我的'.emacs.d'目录同步到不同的平台.
许多软件包如Ido,Muse或Org-mode都是Emacs发行版的一部分,它们附带Debian或Carbon Emacs(osx).但是我也使用的其他软件包不属于这些发行版,因此我必须手动将它们添加到我的个人subversion存储库中.
优点是我现在可以在任何我想要工作的地方查看我的整个'.emacs.d'配置.缺点是我必须跟踪这些包的更新,每次有新的更新时我都必须手动更新我自己的存储库.
是否有更好的方法将我自己的配置和包与"社区"的配置和包集成?我意识到github.com被许多人用于这个原因.
我应该更好地使用git而不是subversion来同步和共享我的Emacs配置与社区的配置吗?这是否意味着我应该更好地切换到github.com而不是使用我自己的subversion服务器来更接近其他有关交换和分发的Emacs用户?
我有一个与我合作的主回购(回购1).我有另一个需要适应第一个的回购(回购2),我不知道如何将它们放在同一个文件夹中.我的想法是,我在每个项目中都有一个标准的代码库 - 但每个项目都是它自己的git repo.
/project
/.git(repo 2)
/.git(repo 1)
/repo_2_sub
/repo_2_sub_sub
/repo_1_sub_sub
/repo_1_sub
/repo_1_sub_sub
/repo_2_sub_sub
Run Code Online (Sandbox Code Playgroud)
没有文件重叠 - 但有些文件夹结构.所以有时来自一个仓库的某些文件夹将在另一个仓库中.
我如何工作,以便这两个存储库构建完整的代码库?
UPDATE
两个git repos都存在于同一个根项目文件夹级别.它们不能是子模块,因为它们如上所示来回穿过彼此.它们不是单独的文件夹.
更新2
等等,也许这比我想象的要容易.你可以克隆一个标准的代码库repo,然后创建一个新的分支,这是你的项目,然后每次更改时,只是继续将该分支与codebase repo合并?