A 仓库的某个分支,是我想要的。想把这个分支迁移到 一个全新的空白的 B 仓库里。
https://blog.csdn.net/xiaozhang_man/article/details/121144024
我是按照这个博客的方法进行的。
但因为 A 仓库的这个分支有子仓库,所以在拉取 A 仓库时,我必须加--recursive 参数。
git submodule add url_of_ygh ygh
就可以,结果提示 ygh already exiest and is not a valid git repo 。git submodule add url_of_ygh ygh
,此时 git status ,能看到.gitmoudles 文件和 ygh@rf43434 都在暂存区了。git add .
添加其他所有文件我想知道,关于子仓库的处理,我这里有更好的办法吗?因为我还需要手动删除
1
breadykidliu 291 天前 2
你删除了 git 文件夹,仓库的历史提交记录不是全没了吗?!这算什么迁移
|
2
amiwrong123 OP @breadykidliu #1
额,此时我的目的是 只想要代码,不想要那些 commit 信息。 |
3
vueli 291 天前
我做过这种迁移的,A 仓库 clone 下来的时候 git submodule init && git submodule update 可以把子仓库更新过来,这样所有文件都在了,直接把文件拿过去就行了啊。 我前端是这样做的
|
4
nothingistrue 291 天前
首先,把 git-book 看熟悉了: https://git-scm.com/book/zh/v2
|
5
nothingistrue 291 天前
你其实只需要 git rebase -i 一个命令,就能清洗当前分支的全部历史。然后把其他分支、标签都删除了,再推送到一个空白仓库中。这样你就能完美把别人的一个分支迁移到自己的仓库中了。当然里面还隐藏了一个作者时间,不过这个也能改,稍微有点高级就不简单说了。
|
6
amiwrong123 OP @vueli #3
嗯嗯,但是在 B 仓库,对于这个子仓库里的东西,还是想以子仓库的形式来引用。 你这个方法,不会是这样的吧:子仓库的东西确实会在 B 仓库里,但是在 B 仓库里 不再是子仓库的形式了。或者说,子仓库的东西就不能再更新了。 |
7
amiwrong123 OP @nothingistrue #5
“就能清洗当前分支的全部历史。然后把其他分支、标签都删除了”这些不会影响到 A 仓库的吗?或者说,这些操作 只是在操作本地的分支,没有影响到远端的东西。 网上搜了下,是这个博客的步骤吗: https://blog.csdn.net/Tomoe20/article/details/135132893 其中这步:git remote add last-repo <旧仓库地址> 有点难理解。在一个仓库里面,还可以设置另一个仓库的 url 呢 ( PS:git 比较菜,还是要多看看你的发的 gitbook 才行呢,但还是想问) |