【问题标题】:Migrating from SVN to Git in a production environment在生产环境中从 SVN 迁移到 Git
【发布时间】:2017-08-28 10:24:57
【问题描述】:

我的任务是从 SVN 迁移到 Git,但我不确定如何在当前设置到位的情况下执行此操作。以下是 SVN 存储库目前的工作方式:

我们有一个开发服务器和一个生产服务器,它们都连接到一个 SVN 存储库。我们在本地进行更改并将其保存到开发服务器。每当我们对这些更改感到满意时,我们就会将它们从开发服务器提交到 svn 存储库(svn commit...),然后在生产服务器上更新它们(svn update...)

我们现在想使用 Git,但我不确定如何反映相同或相似的行为。我最初想拥有一个带有两个分支(dev 和 master)的 Git 存储库。唯一的问题是,开发服务器和生产服务器都不同步;开发服务器上有很多文件对其进行了更改,反之亦然。我怎样才能最好地解决这个难题?

编辑:我经常看到这种情况。请说明拒绝投票的原因,以便我改进答案。

【问题讨论】:

  • 如果您已经将版本控制与部署过程分开(即不仅仅是在生产服务器上使用实时工作副本),那将会更容易。
  • @crashmstr 那将是理想的。不过,我正在使用以前开发人员的旧设置。
  • 即使只有一个批处理文件或 shell 脚本可以将内容复制到服务器,此时您也希望将您的部署放到不同的进程中。这允许您使用不同的部署、功能分支等。
  • 计划就是这样!

标签: git svn version-control migrate


【解决方案1】:

Git 和 SVN 都是版本控制系统,但它们的工作方式并不完全相同。他们有不同的工作流程。

Git 是一个分布式版本控制系统,见https://en.wikipedia.org/wiki/Distributed_version_control

我建议从具有单个分支的单个共享 Git 存储库开始,并在每个开发人员的工作站上建立一个本地存储库。通过克隆共享存储库来创建开发人员的存储库。然后你必须习惯在你的工作流程中添加一个额外的步骤:在 SVN 上你过去只是“提交”,在 Git 上你将不得不“提交”然后还“推送”到共享存储库。

然后在此处从 SVN 页面阅读 Git:https://git-scm.com/course/svn.html 这将帮助您从 SVN 的角度理解 Git。

【讨论】:

  • 我们正在讨论在每个开发人员的工作空间中拥有一个本地存储库。不过,我们希望能够为不同的目的提供不同的环境。例如,开发环境和生产环境。我们还希望能够添加更多环境,例如暂存环境。在这种情况下,是否像提交并推送到开发分支一样简单,然后将其变基到暂存分支和/或主(实时)分支?
  • 您必须在每个开发人员的工作区上都有一个本地存储库,这是分布式版本控制工作的唯一方式。对于不同的环境,您将使用不同的分支,正确。在这种情况下,您将提交然后推送到 dev 分支,然后 merge 从develop 到另一个分支。
猜你喜欢
  • 1970-01-01
  • 2020-05-14
  • 2017-01-25
  • 1970-01-01
  • 2016-02-17
  • 2013-08-20
  • 2015-07-11
  • 2019-11-14
  • 1970-01-01
相关资源
最近更新 更多