如何删除git嵌套repo但保留其中一个分支的文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除git嵌套repo但保留其中一个分支的文件?相关的知识,希望对你有一定的参考价值。
我刚刚将一个目录复制到另一个本地git仓库。事实证明,我复制的目录也是另一个git repo,所以现在我假设我称之为嵌套repo。
我想保留外部仓库,然后将内部仓库整合为外部仓库(根据需要修改远程原产地)。我担心的一个问题是因为内部仓库有几个分支。我想保留其中只有一个分支。
我对解决这个问题的最佳做法感到困惑。希望有人可以给我一些指示。谢谢!
答案
您只能保留文件,而不是历史记录。
- 在另一个位置结帐所需的分支。
- 将其他仓库复制到目标仓库中。
- 从目标文件夹中删除
.git
文件夹和任何.git*
文件。 - 将新文件夹签入目标仓库
在git shell
这样做:
/other/location/otherPrepo>git checkout the-branch-wanted
/other/location/otherPrepo>cp -R * -R /target/location/targetRepo/targetFolder/
/other/location/otherPrepo>rm -rf /target/location/targetRepo/targetFolder/.git*
/other/location/otherPrepo>cd /target/location/targetRepo/
/target/location/targetRepo/>git add targetFolder
/target/location/targetRepo/>git commit -m "added files from otherPrepo"
[编辑:]不要忘记签到...
另一答案
您可以使用git subtree
从第二个存储库导入文件,同时保留其历史记录。
- 从干净的工作树开始(查看
git status
)。如果您已尝试手动复制文件,请将其删除。 Git会为你复制它们。 cd
到您的存储库的顶层。- 运行
git subtree add --prefix=inner path/to/other/repo some-branch
。这将创建一个inner
子目录,并将其他repo的some-branch
的内容放入其中。 - 观察
git log
显示导入文件的历史记录。
以上是关于如何删除git嵌套repo但保留其中一个分支的文件?的主要内容,如果未能解决你的问题,请参考以下文章