我在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服务器作为上游/来源的自己的仓库中?
答案 0 :(得分:1)
git filter-branch
命令而不是git subtree split
。您可以检查this tutorial。git subtree split
的情况下,我猜您也不需要从新创建的存储库中提取数据。相反,请拆分存储库->以便将其存储在本地->然后创建远程存储库->然后将本地存储库推送到新的远程存储库。不要先从旧存储库中拉出-再次,您需要将已过滤/拆分的存储库推入新的远程存储库。在这种情况下,上游将设置正确。