git-设置拆分分支的原点

时间:2018-11-15 22:06:37

标签: git gitlab

我在gitlab公司中有一个git仓库,里面有很多东西。我们决定将它们分成各自的独立存储库。没问题,我在gitlab中创建一个存储库,在本地克隆它,将文件复制过来,提交并推送。一切安好。当然,他们希望保留该分支的提交历史记录。所以我这样做:

count = 0

def print_packet(packet):
    global count
    ip_layer = packet.getlayer(IP)
    print("[!] New Packet: {src} -> {dst}".format(src=ip_layer.src, 
              dst=ip_layer.dst))
    count += 1
    print(count)

print("[*] Start sniffing...")
sniff(iface=interface, filter="ip", prn=print_packet)
print("[*] Stop sniffing")

效果很好。但是我很难弄清楚如何在gitlab中设置上游(原始)存储库。我在gitlab中创建了一个新的存储库,将其克隆到本地(它说我已经克隆了一个空的存储库,这是正确的),然后我做了:

git subtree split -P <directory_to_split> -b <target_branch>

这似乎可行。但是当我执行git status时,我得到:

git pull <directory_of_old_repo> <target_branch>

如果我执行--unset,那么这将破坏整个目标,并且不起作用。

如何将这个分支从旧的仓库转到以gitlab服务器作为上游/来源的自己的仓库中?

1 个答案:

答案 0 :(得分:1)

  1. 根据您的命令,我想您将单个目录拆分为自己的存储库。然后,您可以考虑使用git filter-branch命令而不是git subtree split。您可以检查this tutorial
  2. 即使在git subtree split的情况下,我猜您也不需要从新创建的存储库中提取数据。相反,请拆分存储库->以便将其存储在本地->然后创建远程存储库->然后将本地存储库推送到新的远程存储库。不要先从旧存储库中拉出-再次,您需要将已过滤/拆分的存储库推入新的远程存储库。在这种情况下,上游将设置正确。