问题概述:
我们有一个使用 SVN 仓库的团队。我们中的一些人已经开始使用 Git SVN,并且现在正在享受本地使用 Git 的好处,随意分支,必要时合并到我们的本地主干,然后提交回 SVN。这很有效(尽管我意识到我们没有获得纯 Git 解决方案的所有好处)。
我最近开始将私人 BitBucket Git 存储库用作主干的远程存储库,以便可以轻松地在其他位置之间传输代码。工作流程如下:
1. 在工作中,从 SVN 主干重新定义 => 本地工作主干。 2. 从本地工作主干推送 => BitBucket 主干。 3. 在家里,从 BitBucket 主干拉取 => 本地家庭主干。 4. 在家中编写代码,分支,合并,享受 Git。 5. 从本地家庭分支合并 => 本地家庭主干。 6. 从本地家庭主干推送 => BitBucket 主干。 7. 在工作中,从 BitBucket 主干拉取到本地工作主干。 8. 重新定义与 SVN 主干的差异。 9. 提交到 SVN。
详细情况:
我们希望找到一个适合许多用户的团队的良好工作流程。他们在工作环境中使用 SVN 和 Git SVN,但是还想使用远程 Git 存储库(BitBucket)从工作环境外访问相同的代码,彼此之间共享对这些代码的更改,然后在回到办公室时安全地重新定义为 SVN。而其他人仍然在办公室内本地使用 Git SVN?
我们正在考虑以下一些事例:
1. 如果我们中有人不在办公室,他们希望能够获得最新的代码。在工作中,我可以重新定义 SVN 然后推送到 BitBucket,使我的同事可以使用最新的代码。 2. 如果我们中的两个人想要共享一些更改(假设其中一个或两个人都不在办公室),我们可以在 BitBucket 上为此创建一个功能分支,并根据需要进行推送和拉取。 3. 当我们对其感到满意时,我们中的一个人可以将其合并到我们的本地家庭主干中,然后推送到 BitBucket 主干,准备好在我们回到工作时进行拉取。 4. 回到工作后,我们中的一个人可以从 BitBucket 拉取主干到我们的本地工作主干,然后重新定义与 SVN 的差异并提交,就像往常一样。
假设我们其中一人已经完成了这个任务,那么团队的其他成员会发生什么?如果他们从BitBucket Master拉取代码,他们会得到修改后的代码。但是,如果他们从SVN上进行rebase操作,他们也会得到更新后的代码。
如果他们两者都做了呢?而且这只是可能出问题的其中一种情况。我可以想到其他几组步骤,这些步骤也可能让整个过程变得混乱。
不幸的是,我们的持续集成工作流与SVN绑定在一起,整个业务也是如此。因此,我们实际上不能完全转向Git。我们也无法从公司外部访问我们的SVN存储库。
我们有一个使用 SVN 仓库的团队。我们中的一些人已经开始使用 Git SVN,并且现在正在享受本地使用 Git 的好处,随意分支,必要时合并到我们的本地主干,然后提交回 SVN。这很有效(尽管我意识到我们没有获得纯 Git 解决方案的所有好处)。
我最近开始将私人 BitBucket Git 存储库用作主干的远程存储库,以便可以轻松地在其他位置之间传输代码。工作流程如下:
1. 在工作中,从 SVN 主干重新定义 => 本地工作主干。 2. 从本地工作主干推送 => BitBucket 主干。 3. 在家里,从 BitBucket 主干拉取 => 本地家庭主干。 4. 在家中编写代码,分支,合并,享受 Git。 5. 从本地家庭分支合并 => 本地家庭主干。 6. 从本地家庭主干推送 => BitBucket 主干。 7. 在工作中,从 BitBucket 主干拉取到本地工作主干。 8. 重新定义与 SVN 主干的差异。 9. 提交到 SVN。
详细情况:
我们希望找到一个适合许多用户的团队的良好工作流程。他们在工作环境中使用 SVN 和 Git SVN,但是还想使用远程 Git 存储库(BitBucket)从工作环境外访问相同的代码,彼此之间共享对这些代码的更改,然后在回到办公室时安全地重新定义为 SVN。而其他人仍然在办公室内本地使用 Git SVN?
我们正在考虑以下一些事例:
1. 如果我们中有人不在办公室,他们希望能够获得最新的代码。在工作中,我可以重新定义 SVN 然后推送到 BitBucket,使我的同事可以使用最新的代码。 2. 如果我们中的两个人想要共享一些更改(假设其中一个或两个人都不在办公室),我们可以在 BitBucket 上为此创建一个功能分支,并根据需要进行推送和拉取。 3. 当我们对其感到满意时,我们中的一个人可以将其合并到我们的本地家庭主干中,然后推送到 BitBucket 主干,准备好在我们回到工作时进行拉取。 4. 回到工作后,我们中的一个人可以从 BitBucket 拉取主干到我们的本地工作主干,然后重新定义与 SVN 的差异并提交,就像往常一样。
假设我们其中一人已经完成了这个任务,那么团队的其他成员会发生什么?如果他们从BitBucket Master拉取代码,他们会得到修改后的代码。但是,如果他们从SVN上进行rebase操作,他们也会得到更新后的代码。
如果他们两者都做了呢?而且这只是可能出问题的其中一种情况。我可以想到其他几组步骤,这些步骤也可能让整个过程变得混乱。
不幸的是,我们的持续集成工作流与SVN绑定在一起,整个业务也是如此。因此,我们实际上不能完全转向Git。我们也无法从公司外部访问我们的SVN存储库。