如何删除git嵌套的回购协议,但保留分支之一中的文件?

时间:2018-07-25 10:14:43

标签: git github gitlab

我刚刚将目录复制到另一个本地git repo。原来,我复制的目录也是另一个git repo,所以现在我有了所谓的嵌套repo。

我想保留外部存储库,然后将内部存储库集成为外部存储库(可以说是修改了远程源)。我关注的问题之一是内部回购有多个分支。我只想保留其中一个分支。

我对解决此问题的最佳做法感到非常困惑。希望有人可以给我一些指示。谢谢!

2 个答案:

答案 0 :(得分:1)

您只能保留文件,不能保留历史记录。

  • 在其他位置签出所需分支。
  • 将另一个仓库复制到目标仓库中。
  • 从目标文件夹中删除self.addEventListener('fetch', function(e) { console.log('[Service Worker] Fetch', e.request.url); e.respondWith(caches.match(e.request) .then(function(response) { return response || fetch(e.request) .then(function (resp){ return caches.open(cacheName) .then(function(cache){ cache.put(e.request, resp.clone()); return resp; }) }).catch(function(event){ console.log('[Service Worker] Error fetching data!'); }) }) ); }); 文件夹和任何.git文件。
  • 将新文件夹签入目标存储库

.git*中执行以下操作:

git shell

[edit:]不要忘记签到...

答案 1 :(得分:0)

您可以使用git subtree从第二个存储库导入文件,同时保留其历史记录。

  1. 从干净的工作树开始(请检查git status)。如果您已经尝试手动复制文件,请删除它们。 Git会为您复制它们。
  2. cd到存储库的顶层。
  3. 运行git subtree add --prefix=inner path/to/other/repo some-branch。这将创建一个inner子目录,并将其他存储库some-branch的内容放入其中。
  4. 观察到git log显示了导入文件的历史记录。