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工作_Git_Svn_Merge - Fatal编程技术网

Git 赢得';我不在SVN工作

Git 赢得';我不在SVN工作,git,svn,merge,Git,Svn,Merge,我正在寻找能够在git中工作,但会导致SVN冲突的具体示例合并。除此之外,您从未在git中尝试过的困难/痛苦的SVN合并示例也可以 关于我的问题,我可以确定主要有四类合并: 重命名/移动相关合并 在两个分支中创建了相同的目录/文件 我错过了这里的任何场景吗? 找到1-3的样本是很简单的(在评论中找到2的样本,3作为我答案的一部分,1几乎是任何回退)有没有人有一个成功的交叉合并的样本(这不是学术性的),它将在SVN中失败?找到了一个很好的样本。创建“团队b”分支只是为了显示树与在两个分支中创建

我正在寻找能够在git中工作,但会导致SVN冲突的具体示例合并。除此之外,您从未在git中尝试过的困难/痛苦的SVN合并示例也可以

关于我的问题,我可以确定主要有四类合并:

  • 重命名/移动相关合并
  • 在两个分支中创建了相同的目录/文件
  • 我错过了这里的任何场景吗?


    找到1-3的样本是很简单的(在评论中找到2的样本,3作为我答案的一部分,1几乎是任何回退)有没有人有一个成功的交叉合并的样本(这不是学术性的),它将在SVN中失败?

    找到了一个很好的样本。创建“团队b”分支只是为了显示树与在两个分支中创建相同目录的冲突。这里是一个概述:

    当然值得一提的是
    八达通
    合并策略

    一般来说,很难找到章鱼合并最多8个分支(最少3个)的具体例子

    然而,为了更准确地回答您的问题,我不认为提供一个精心设计的“这在Git中有效,但在SVN中不起作用”的示例将赢得您与同事/管理层的任何斗争

    我认为,如果不了解这两种工具的基本“细节”,就很难理解Git的真正威力——我是根据我自己在公司搬迁后从SVN过渡到Git的经验来理解这一点的。我不确定莱纳斯本人是否能够向一个不了解Git vs SVN内部运作的人(一个典型的街头人物)展示一场获胜的“电梯演讲”

    有些人可能不同意这一观点,但我对Git的采用来自广受尊敬的人,他们说它是源代码控制的最佳工具;我信任他们,他们被证明是正确的,因为我从Git高效的工作流程中了解了更多关于Git如何在内部工作的信息

    我对使用SVN的持久记忆是每天解决合并冲突。我过去认为这是开发软件的一个正常部分,但不一定非得如此。

    好吧,在现实世界中捕获并注册

  • 在分支中添加的文件
  • 通过两次合并(分支->主干->另一个分支),文件出现在另一个分支中
  • 在分支目标中编辑的文件
  • 将分支合并到主干失败,因为有问题的文件存在“树冲突”
  • r9 |獾| 2013-03-06 11:42:34+0600(С|,06ぷぷぷ2013)1行
    更改的路径:
    M/Branchs/B2/src/add.txt

    B2 changes in add.txt
    ------------------------------------------------------------------------
    r8 | Badger | 2013-03-06 11:35:45 +0600 (Ср, 06 мар 2013) | 2 lines
    Changed paths:
       M /branches/B2
       M /branches/B2/core.txt
       A /branches/B2/src/add.txt (from /trunk/src/add.txt:7)
    
    Merge from trunk to B2
    ------------------------------------------------------------------------
    r6 | Badger | 2013-03-06 11:31:36 +0600 (Ср, 06 мар 2013) | 1 line
    Changed paths:
       M /trunk
       M /trunk/core.txt
       A /trunk/src/add.txt (from /branches/B1/src/add.txt:5)
    
    Merge from B1 to trunk
    ------------------------------------------------------------------------
    r5 | Badger | 2013-03-06 11:28:58 +0600 (Ср, 06 мар 2013) | 1 line
    Changed paths:
       M /branches/B1/core.txt
       A /branches/B1/src/add.txt
    
    B1 changes
    ------------------------------------------------------------------------
    
    尝试从b2合并到主干(预期结果-将
    src/add.txt
    的更改合并到现有文件的主干版本)


    这会有帮助还是一个好的起点?@VonC我想我已经在这里阅读了关于这个主题的“所有”问题;)我完全了解git和SVN背后的理论。但我在找一个具体的样品。我不敢相信我是第一个这样说服同事的人。肯定有人已经创造了这样的样本。示例应该是这样的:dox,doy,doz->SVN中的冲突/git中的罚款。关于DAG和树的长谈并不是什么“电梯演讲”:(可能你在这个话题上找不到太多的原因是,SVN和Git之间的差异“合并导致冲突”本身并不那么引人注目。您现在看到了切换到Git的0.01%的真正原因。@RyanStewart每个人都听说在Git中合并比在SVN中合并更容易,我想这就是为什么每个人都想看到这样的示例。就我个人而言,对历史/分支的可视化足以让我迁移到Git:),但它本身的所有小好处似乎都很小,不足以证明迁移的合理性。请说服管理层,您需要的不仅仅是许多小而好的功能。在你看来,杀手功能是什么?@mnhg杀手功能?rebase:ie:让我们在我的开发之上应用我的你的开发。git就是这样开始的:作为Linus的补丁管理者,他每天都要应用数百个补丁。有效的合并是其自然结果。仅为合并而迁移缺少一点:您的迁移是因为通过重定基址和合并(再加上离线提交、对分等的所有其他优点)集成其他代码的灵活性。来源:(2009)请不要参考“带手榴弹的猴子”示例:Subversion具有代表性的真正弱点,没有必要表现出完全堕落cases@LazyBadger请随意添加一些作为单独的答案!(顺便说一句,外面有很多猴子:))刚刚来到我的造币厂:一只带着SVN手榴弹的猴子会死,同样一只带着git手榴弹的猴子会活下来。这意味着这个示例似乎没有那么糟糕……我知道的大多数SVN用户都不惜一切代价阻止分支。告诉他们您可以同时合并多个不冲突的分支是没有用的:)他们很高兴。作为我最后的论点之一,我只需要另一个他们可能遇到的好例子。(当然,我跳过了我问题中的所有其他论点,但请不要假设我只是想把这个例子扔到他们的桌子上,不用其他的话说服他们。)Octopus merge是git特有的,而不是SVN weakness。如果没有它,这是一个弱点,所以我不同意。我可能会错过一些东西,但这不是整合合并的目的吗(在主干->分支合并之后)@maxim1000-1.我不这么认为2.即使在1.7中也没有帮助,其中--reintegrate不是分支中的最后一个动作
    >svn merge --dry-run file:///Z:/Repo/branches/B2
    --- Merging r4 through r9 into '.':
       C src\add.txt
     G   .
    Summary of conflicts:
      Tree conflicts: 1