Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git svn合并2个svn分支_Svn_Git_Merge_Git Svn - Fatal编程技术网

git svn合并2个svn分支

git svn合并2个svn分支,svn,git,merge,git-svn,Svn,Git,Merge,Git Svn,我正在使用svn。我有两个分支,对它们都进行了很多更改。 除了其中一个分支,许多文件被重命名,因此现在svn无法帮助我合并这些文件中的更改(众所周知svn的限制) 是否可以使用git svn执行分支的合并 git svn也会处理重命名的文件吗 谢谢应该能够检测(到某一点)重命名 recursive 这只能使用三路合并算法解析两个磁头。 此外,这还可以检测和处理涉及重命名的合并。 这是拉取或合并一个分支时的默认合并策略 但只能从SVN导入/导出,不能进行合并。 合并很棘手: 注意事项 为了简化操作

我正在使用svn。我有两个分支,对它们都进行了很多更改。 除了其中一个分支,许多文件被重命名,因此现在svn无法帮助我合并这些文件中的更改(众所周知svn的限制)

  • 是否可以使用git svn执行分支的合并
  • git svn也会处理重命名的文件吗
  • 谢谢

    应该能够检测(到某一点)重命名

    recursive

    这只能使用三路合并算法解析两个磁头。
    此外,这还可以检测和处理涉及重命名的合并。
    这是拉取或合并一个分支时的默认合并策略

    但只能从SVN导入/导出,不能进行合并。
    合并很棘手:

    注意事项

    为了简化操作并与功能较差的系统(SVN)进行互操作,建议所有
    git SVN
    用户直接从SVN服务器克隆、获取和提交数据,并避免git存储库和分支之间的所有git克隆/拉/合并/推操作。
    建议在git分支和用户之间交换代码的方法是git格式补丁和git am,或者只是“向SVN存储库提交数据”

    建议不要在计划从中进行数据提交的分支上运行git merge或git pull。Subversion不代表以任何合理或有用的方式进行合并;因此,使用Subversion的用户无法看到您进行的任何合并。此外,如果您合并或从作为SVN分支镜像的git分支提取数据,dcommit可能会提交到错误的分支

    如果进行合并,请注意以下规则:git svn dcommit将尝试在中命名的svn commit之上进行提交

    因此,必须确保要提交到的分支的最新提交是合并的第一个父级。否则会出现混乱,特别是如果第一个父级是同一SVN分支上的较旧提交。


    我曾经在大学的一个项目中遇到过同样的问题。我所做的是:

    • 创建新的git svn存储库(
      git svn克隆-s https://…
    • 将分支与git合并(
      git签出主机;git合并分支
    • 使用svn签出中继(
      svn co https://…/trunk
    • 从git复制合并的文件
    • 使用svn删除剩余的文件和目录(
      svn rm
    • 使用svn提交(
      svn ci
    • 获取git中的新提交

    使用SVN合并功能合并SVN分支,速度会更快。
    使用Git解决这些问题相当复杂,它会产生太多的冲突

    谢谢你的有用的总结。git合并容易吗,比svn更容易吗?(我试图找到答案:)还有一件事,你有没有试着把数据提交回svn?如果是这样的话,你会遇到什么问题?@inger,不,我向svn承诺,以确保我不会推动只有git才能理解的半生不熟的合并。你可以使用--squash将合并压缩为一次提交。因此,将其推回到svn中应该更安全(否则您可能会重复许多以前的提交)链接:请参阅此答案:请参阅。。。第二个答案的“编辑:”部分(不是被接受的答案)特别好
    git log --grep=^git-svn-id: --first-parent -1