我在BitBucket上有多个代码库。从BitBucket迁移到GitLab最合适的方式是什么?
举例来说,我在我的系统上维护了一个名为“SSSP”的代码库。我应该采取哪些步骤,以便将该代码库从BitBucket干净地迁移到GitLab?
我在BitBucket上有多个代码库。从BitBucket迁移到GitLab最合适的方式是什么?
举例来说,我在我的系统上维护了一个名为“SSSP”的代码库。我应该采取哪些步骤,以便将该代码库从BitBucket干净地迁移到GitLab?
最好使用一个中间的本地bare repo来复制一个远程仓库并将其推送到一个新的远程仓库。
假设您已经准备好一个空的GitLab仓库:
git clone --bare git@bitbucket.com:old/old_repo.git
cd old_repo
git remote add new-origin git@gitlab.com:new/new_repo.git
git push --mirror new-origin
cd ..
git clone git@gitlab.com:new/new_repo.git repo
cd repo
# start working
请注意,有一个更完整的导入过程,并且在GitLab 16.3(2023年8月)中包括以下内容:
从BitBucket Server导入时保留拉取请求审阅者
直到现在,BitBucket Server导入程序没有导入拉取请求(PR)的审阅者,而是将它们归类为参与者。审阅者的信息在审计和合规方面非常重要。
在GitLab 16.3中,我们增加了正确导入来自BitBucket的PR审阅者的支持。在GitLab中,他们成为合并请求的审阅者。
使用vim以root身份打开gitlab.rb文件(您可以选择您喜欢的编辑器)
sudo vim /et/gitlab/gitlab.rb
初始化OmniAuth配置以进行初始设置:
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml', 'twitter']
gitlab_rails['omniauth_auto_link_ldap_user'] = true
gitlab_rails['omniauth_block_auto_created_users'] = true
添加Bitbucket提供者配置(我们生成的密钥和秘密):
gitlab_rails['omniauth_providers'] = [
{
"name" => "bitbucket",
"app_id" => "BITBUCKET_APP_KEY",
"app_secret" => "BITBUCKET_APP_SECRET",
"url" => "https://bitbucket.org/"
}
]
保存更改到gitlab.rb文件中
gitlab-ctl stop
,gitlab-ctl reconfigure
和gitlab-ctl start
以重新配置更改并重新启动gitlab。https://bitbucket.org/account/settings/app-passwords/
几乎相同但没有“回调URL”的密码?那我是否拥有不同或另一个版本的Bitbucket? - Vladimir Ch我没有50个声望,所以无法发表评论,但VonC是正确的。花了大约两个小时尝试让GitLab的BitBucket导入功能工作 - 我放弃了它,只是添加了一个新的起点,重新推送--mirror并删除了旧的起点。当查看新的GitLab服务器时,我可以看到来自先前Git起点/服务器的所有提交。
cd /dev-git-repo/
git remote add new-origin https://my-gitlab.my-gitlab-repo.com/myrepo-dev-git-repo
git push --mirror new-origin
git remote remove origin
echo "\r\nThis should be seen on GitLab not bitBucket" > README.md
git commit -m "updated readme.md"
git push new-origin
而且你可以看到README在gitlab上更新了,而不是在bitbucket上。
bitbucket-import
的新组。然后在该组中创建一个新项目,以便创建文件夹/var/opt/gitlab/data/repositories/bitbucket-import
。cp -r /var/atlassian/application-data/stash/shared/data/repositories/* /var/opt/gitlab/data/repositories/bitbucket-import
/var/opt/gitlab/data/repositories/bitbucket-import/
rename -n s/$/.git/ * # Dry run
rename s/$/.git/ * # Renaming
导入存储库:
chown -R git:git /var/opt/gitlab/data/repositories/bitbucket-import/
gitlab-rake gitlab:import:repos['/var/opt/gitlab/data/repositories/'] RAILS_ENV=production
http://your-bitbucket-stash-server/rest/api/1.0/repos?limit=1000&start=0
前往gitlab-ce项目设置 -> 高级选项并重新命名您的存储库。
祝好。
1.git -c http.sslVerify=false clone https://user@bitbkt:8443/scm/config.git
将从Bitbucket在本地机器上创建克隆(需要适当的权限来克隆Bitbucket中的数据)
2.cd config
克隆后进入基础文件夹
3.git remote add sxm https://test.com/gitlab/xyz/config.git
在GitLab(xyz)上创建了特定的组,并在其中创建了配置项目。
4. git push sxm
将在GL Gitlab上推送BitBucket代码。