Close

分享

在 SVN 中,开发人员通过将变更从本地计算机上的工作副本提交到中央存储库来共享贡献。然后,其他开发人员将这些更新从中央代码存储库提取到他们自己的本地工作副本中。

Git’s collaboration workflow is much different. Instead of differentiating between working copies and the central repository, Git gives each developer their own local copy of the entire repository. Changes are committed to this local repository instead of a central one. To share updates with other developers, you need to push these local changes to a public Git repository on a server. Then, the other developers can pull your new commits from the public repo into their own local repositories.

Git 迁移:集中式 SVN 开发与分布式 Git 开发

为每个开发人员提供自己的完整存储库是分布式版本控制的核心,它开辟了各种潜在的工作流程。您可以在我们的 Git 工作流程部分阅读有关这些工作流程的更多信息。

到目前为止,您只使用了本地 Git 存储库。本页介绍如何将此本地代码存储库推送到 Bitbucket 上托管的公共存储库。在迁移期间共享 Git 存储库可让您的团队在不影响其活跃 SVN 开发的情况下试用 Git 命令。在准备好进行切换之前,将共享的 Git 存储库视为只读非常重要。所有开发都应继续提交到原始的 SVN 存储库中。


创建一个 Bitbucket 帐户


如果您还没有 Bitbucket 帐户,则需要创建一个。最多可免费托管 5 个用户,因此您可以立即开始尝试新的 Git 工作流程。

创建 Bitbucket 存储库


接下来,您需要创建一个 Bitbucket 存储库。Bitbucket 使通过网络界面管理托管存储库变得非常容易。您要做的就是在登录后单击“创建存储库”按钮。

Create repository within Bitbucket

在生成的表单中,为您的存储库添加名称和描述。如果您的项目是私有项目,请选中“访问级别”选项,这样只有指定的开发人员才能克隆项目。对于拷贝字段,使用仅允许私有拷贝。使用 Git 作为存储库类型,选择要使用的任何项目管理工具,然后在语言字段中选择项目的主要编程语言。

Create repository fields within Bitbucket
数据库
相关资料

如何移动完整的 Git 存储库

Bitbucket 徽标
查看解决方案

了解 Bitbucket Cloud 的 Git

要创建托管存储库,请单击创建存储库按钮提交表单。设置好存储库后,您将看到后续步骤页面,其中描述了一些用于导入现有项目的有用命令。本页的其余部分将逐步引导您完成这些说明。

添加原始远程


为了更轻松地将提交从本地 Git 存储库推送到您刚刚创建的 Bitbucket 存储库,您应该在远程存储库中记录 Bitbucket 存储库的 URL。远程存储库只是 URL 的便捷快捷方式。从技术上讲,您可以使用任何您喜欢的快捷方式,但是如果远程存储库充当项目的官方代码库,它通常作为 origin 引用。在本地 Git 存储库中运行以下命令,将新的 Bitbucket 存储库添加为 origin 远程存储库。

git remote add origin https://<username>@bitbucket.org/<workspace-id>/<repo>.git

务必将 <username> 更改为您的 Bitbucket 用户名,<workspace-id> 更改为您的工作区 ID,<repo> 更改为 Bitbucket 存储库的名称。您还应该能够从 Bitbucket Web 界面复制和粘贴完整的 URL。

Git 迁移:添加 origin 远程存储库

运行上述命令后,您可以在其他 Git 命令中使用 origin 来引用您的 Bitbucket 存储库。

将本地存储库推送到 Bitbucket


接下来,您需要使用本地 Git 存储库的内容填充您的 Bitbucket 存储库。这称为“推送”,可以使用以下命令完成:

git push -u origin --all

-u 选项告诉 Git 跟踪上游分支。这使得 Git 能够告诉您远程代码存储库的提交历史记录是在您的本地提交历史记录之前还是之后。--all 选项将所有本地分支推送到远程存储库。

You also need to push your local tags to the Bitbucket repository with the --tags option:

git push --tags
Git 迁移:推送到 Bitbucket 代码存储库

现在,您的 Bitbucket 存储库本质上是本地存储库的克隆。在 Bitbucket 网页界面中,您应该能够浏览所有分支的完整提交历史记录。

与您的团队共享存储库


您现在要做的就是与需要访问该存储库的任何其他开发人员共享您的 Bitbucket 存储库的 URL。任何 Git 存储库的 URL 都可以从 Bitbucket 的存储库主页复制粘贴:

Share repository url

如果您的存储库是私有的,则还需要在 Bitbucket Web 界面的管理选项卡中向团队成员授予访问权限。可以通过单击左侧边栏中的访问管理链接来管理用户和群组。

Git 迁移:Git 存储库的访问管理

作为替代方案,您可以使用 Bitbucket 的内置邀请功能邀请其他开发人员拷贝存储库。被邀请的用户将自动获得访问存储库的权限,因此您无需担心授予权限。

获得您的存储库 URL 后,其他开发人员就可以使用 git clone 将存储库复制到他们的本地计算机上,然后开始处理该项目。例如,在他们的本地计算机上运行以下命令后,另一位开发人员将在名为<repo> 的目录中找到一个包含该项目的新 Git 存储库。

git clone https://<username>@bitbucket.org/<workspace-id>/<repo>.git 

继续使用 SVN 提交,而不是 Git


您现在应该能够将本地项目推送到远程存储库,并且您的团队应该能够使用该远程存储库将项目克隆到他们的本地计算机上。这些都是开始与 Git 协作所需的全部工具。但是,您和您的团队应该继续使用 SVN 提交变更,直到所有人都准备好进行切换。

Git 存储库的唯一变更应来自使用上一页讨论的同步流程的原始 SVN 存储库。无论出于何种意图和目的,这意味着您的所有 Git 存储库(本地和远程)都是只读的。您的开发人员可以试用它们,您可以开始将它们集成到您的构建流程中,但您应该避免使用 Git 提交任何永久性变更。

Git 迁移:只有 Git 代码存储库的变更应该来自原始 SVN 代码存储库

摘要


在此步骤中,您将设置一个 Bitbucket 存储库,以便与其他开发人员共享转换后的 Git 存储库。现在,您应该拥有实现 Git 工作流程中描述的任何 Git 工作流程所需的所有工具。只要让开发团队熟悉 Git,您就可以继续与 SVN 存储库同步,并通过 Bitbucket 共享生成的 Git 提交。然后,您可以通过退出 SVN 存储库来完成迁移流程。


分享此文章
下一主题

推荐阅读

将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。

人们通过满是工具的墙进行协作

Bitbucket 博客

Devops 示意图

DevOps 学习路径

与 Atlassian 专家一起进行 Den 功能演示

Bitbucket Cloud 与 Atlassian Open DevOps 如何协同工作

注册以获取我们的 DevOps 新闻资讯

Thank you for signing up