请考虑以下情形:
我在自己的Git仓库中开发了一个小型实验项目A. 它现在已经成熟,我希望A成为更大的项目B的一部分,它有自己的大型存储库.我现在想添加A作为B的子目录.
如何将A合并到B中,而不会丢失任何一方的历史记录?
如何取消子模块git子模块(将所有代码重新放入核心)?
就像"应该"我一样,如"最佳程序"......
我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
我有两个代码库,Code base-1,Code Base-2.
我运行命令......
git init
git add .
git commit -m "Initial Commit"
Run Code Online (Sandbox Code Playgroud)
...在两个存储库(目录)中.
代码base-1和代码base-2之间存在代码差异.
我不能分支他们,因为他们已经包含约0.1%的差异.文件名是相同的,但代码有一些轻微的编辑.
有没有办法合并两个存储库之间的差异?
编辑:
例如,假设我有以下内容.这就是我的开始.代码库1和2之间存在细微差别.
[oldest code case]
code-base-1/
code-base-1/.git [git stuff with already created repo]
code-base-1/file1
code-base-1/file2
code-base-2/
code-base-2/.git [git stuff with already created repo]
code-base-2/file1
code-base-2/file2
Run Code Online (Sandbox Code Playgroud)
理想情况下,我可以删除code-base-2,因为它更新一点.
我将如何合并这些代码库,以便最终得出一个合并文件?
我们有两个并行发展的存储库:一个用于我们项目的代码,另一个用于该项目的测试。我想将这两个存储库合并到一个存储库中,这样当我回顾历史时,我仍然拥有这两个目录结构。
假设我们当前的结构如下,其中project和tests是两个独立的 git 存储库:
project
/src
/include
tests
/short
/long
Run Code Online (Sandbox Code Playgroud)
我希望最终得到一个包含两个目录project和tests.
我不能简单地使用此答案、此答案或此站点中描述的技术合并这两个存储库:它们会导致存储库在合并之前具有两个不同的历史记录,并且在检查过去的提交时,您可以选择src和include,或short和long,但您并不拥有当时出现的全部四个。
如果我签出 4 个月前创建的提交project,我希望看到project/src和project/include出现在该提交中,但我也希望同时在(当时是单独的)存储库中看到tests/short和。test/longtest
我知道两个存储库之间的提交顺序仅取决于时间,并且可能不是很精确。但这对我来说已经足够了。当然,我知道我无法保留每个存储库中的原始 git id。没关系,因为这两个存储库实际上是从另一个 RCS 新鲜导入的,因此任何地方都没有记录过 git id。
应该可以逐一检查每个存储库中的所有提交,按存储库中的时间排序,并提交生成的文件。是否已经有一个工具可以做到这一点?
我有两个git存储库,像这样:
proj1有一个标签V1.0.0和proj2具有标签V2.0.0和V2.1.0.现在我想合并proj1(特别是V1.0.0标签)到proj2,如果它是proj2的早期版本,让我有标签V1.0.0,V2.0.0和V2.1.0.如果我必须将proj2合并到proj1或将两者合并到一个新的存储库中,我也很好,只要我获得所有标记和组合历史记录.
有很多人提出类似的问题,如下所示,但似乎没有一个问题 - 将两个存储库添加为不同的版本. 合并两个Git存储库
那可能吗?