我有两个相同远程存储库的git克隆。我在克隆A中创建了几个藏匿处,现在想要将这些藏匿处移动到克隆B。
[克隆A] ---- stashes ---> [克隆B]
我能想到的一个解决方法是为每个存储创建分支,并通过克隆A将该分支推送到远程,然后将这些分支拉入克隆B.但这不是我更愿意做的。
有人可以建议任何更简单,更清洁的方式(如复制)吗?
答案 0 :(得分:0)
很多方式:
通过ssh:将一个repo添加为另一个repo,并直接推/拉,
将.git/
Clone A
Clone B
文件夹复制到Clone A
机器上某处,并使用此"本地副本"您的Clone B
作为[{1}}
将Clone A
中的提交推送到中央仓库,但不在分支下(分支存储在refs/heads/
,如果您推送refs/cloneA/stash1
,则默认为{{来自其他人的1}}将不会获取这些引用)
答案 1 :(得分:0)
您应该可以复制.git/refs/stash
以获取最新的存储,并.git/logs/refs/stash
复制堆叠中的所有其他存储。实际上你甚至可以把refs/stash
拉到我认为最新的那个。
但这可能无法正常工作,因为存储的提交对象不会出现在复制目标中。您可以设置.git/objects/info/alternates
,以便在A存储库中搜索丢失的对象,以使复制在目标中工作。
您应该使用git worktree
为同一个远程存储库而不是多个克隆使用多个工作树。你会节省很多空间,我认为你应该能分享这些东西。