在团队项目之间移动 Git 个存储库

Move Git repositories between team projects

我想移动一个项目及其所有历史和提交,包括任何功能分支,但我一直没有成功。

不幸的是,5 'easy' steps visualstudio 文章中的详细说明没有明确说明何时需要使用源或目标克隆 url 或者我应该在哪个文件夹中。

我做了以下操作,它只是克隆了我的文件,但没有克隆功能分支,即使消息说它已经创建了它。

这是我当前项目所在的位置 oldTeam > myProject。我想把它转移到我的新团队;新团队 > 我的项目

我在 newTeam 下为 myProject 创建了一个新的存储库并复制了克隆 URL

在Git命令中

c:\webapps\oldTeam\myProject> git clone --mirror [从上面的步骤克隆 URL]

Cloning into bare repository 'myproject.git'...
warning: You appear to have cloned an empty repository.

c:\webapps\oldTeam\myProject> git push --mirror [从上面的步骤克隆 URL]

Counting objects: 446, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (364/364), done.
Writing objects: 100% (446/446), 3.81 MiB | 0 bytes/s, done.
Total 446 (delta 79), reused 416 (delta 64)
remote: Analyzing objects... (446/446) (478 ms)
remote: Storing packfile... done (435 ms)
remote: Storing index... done (43 ms)
To [cloned URL from above step]
 * [new branch]      develop -> develop
 * [new branch]      master -> master
 * [new branch]      origin/HEAD -> origin/HEAD
 * [new branch]      origin/develop -> origin/develop
 * [new branch]      origin/feature/XYZ -> origin/feature/XYZ
 * [new branch]      origin/master -> origin/master

当我查看我的新存储库时,我可以看到我的文件、主分支和开发分支,但看不到我的功能分支。我究竟做错了什么?

你可以在推送输出消息中发现 developmaster 分支前面没有 origin/,这意味着你的本地 repo 只有 developmaster 本地分支。

所以你需要在本地签出功能分支,然后推送到另一个空的trpo。详细步骤如下:

git checkout feature/XYZ
git push --mirror [cloned URL from above step]

由于新的repo不再是空的,你可以通过另一种方式push feature/XYZ到新的repo:

git remote add new [cloned URL from above step]
git push new feature/XYZ