gpt4 book ai didi

git - 保持 svn 仓库与 git 同步

转载 作者:太空狗 更新时间:2023-10-29 13:19:32 25 4
gpt4 key购买 nike

我和我的队友正在努力让我们的 svn 存储库与我们的 git 存储库同步。我们正在开展一个项目,我们被要求在 svn 存储库(由 assembla.com 网站托管)上共享我们的代码。由于我们习惯于使用 git 对代码进行版本控制,因此我们决定充分利用 git 提供的 git svn 功能。为了共享我们所有的工作并将其划分到正确的分支中,我们也有一个用于 git 的远程存储库 (bitbucket)。

到目前为止,我们使用 git 提交的所有工作都没有给我们带来问题,但是在错误出现后同步 svn 存储库错误时。

我遵循了这个答案 Pushing an existing git repository to SVN将 svn 存储库连接到 git 存储库,但经过几次 merge 和提交后,我收到错误并且无法再提交更改。

现在我有一个分支,它是 svn/trunk 的副本

$ git checkout -b assembla_copy -t svn/trunk
Branch assembla_copy set up to track local ref refs/remotes/svn/trunk.
Switched to a new branch 'assembla_copy'

$ git svn rebase svn/trunk
Current branch assembla_copy is up to date.

为了将它与我的主分支同步,我都尝试过

git merge master

git rebase master

但是当 git rebase master 开始应用自第一次提交以来的所有更改并产生很多很多冲突时(当我已经在 svn/trunk 中有了这些更改,因为在某种程度上我设法将一些更改推送到在线存储库;我们现在是 ar r46),git merge master 运行正常,但是当我提交时,所有更改都汇总在一次提交中声明“将分支‘master’ merge 到 assembla_copy”,而我更希望它提交所有单独的提交(就像它在开始时所做的那样......)。

如果我从 master 分支提交,所有提交都是分开的,但随后 master 分支会重新设置基线,因此所有以 master 提交为父级的分支都显示为与 master 分支分开..

您能否向我解释正确的工作流程,以拥有一个镜像 git 存储库的 svn 存储库,所有工作都在其中完成(svn 只是一个副本)?您能否只使用标准的 git 命令而不使用复杂的 bash 脚本,正如我在上周搜索解决方案时在一些答案中看到的那样?

谢谢!

最佳答案

我正在使用以下工作流程,目标是将本地 git 存储库作为远程 SVN 存储库的某种奇特的 svn 客户端。

  • 使用 git svn clone ... 初始化存储库。这使得主分支跟随 SVN 主干 - 在您的情况下应该是 svn/trunk。
  • 从 master 创建一个本地“基线”分支:git checkout -b local。在您的情况下,这将是 master
  • 开始在本地的一个功能分支上工作 - git checkout -b feature
  • 当我准备提交到远程 SVN 时:
    • git checkout master
    • git svn rebase - 获取 SVN 更新
    • 如果有任何更新,我将它们 merge 到本地
    • git rebase --onto master local feature - 与 local 基线相比,在功能分支中所做的更改将应用​​于 master 分支<
    • merge 功能分支到master:git checkout master, git merge feature
    • git svn dcommit - 提交对 SVN 的更改
    • 将新功能 merge 到本地基线:git checkout localgit merge master - 就像其他人已向 SVN 提交了某些内容一样。

希望这对您有所帮助。

关于git - 保持 svn 仓库与 git 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com