代码之家  ›  专栏  ›  技术社区  ›  Luke Maurer

Git移植有危险吗?

  •  2
  • Luke Maurer  · 技术社区  · 15 年前

    我一直在使用Git作为Subversion回购的胖客户端,这非常好。我应该遵循每个Trac票证一次提交的方法,但是为了我自己的利益,我更喜欢拥有原子提交的丰富历史,所以我养成了以下习惯:

    1. 为Trac票证生成主题分支
    2. 砍掉,做出几次承诺
    3. 使用 git rebase -i
    4. 使用 git svn dcommit
    5. 将功能合并回 master ,然后从合并 trunk (第二步通常是no-op,因为trunk和feature分支应该匹配)

    主人 树干 很好的同步,同时保持所有的历史我想要的。唯一的问题是Git认为 永远遥遥领先 主人 树干 树干 独自哼唱 主人

    Switched to branch 'master'
    Your branch and 'trunk' have diverged,
    and have 232 and 1 different commit(s) each, respectively.
    

    现在,我真的不知道 这是个问题。我基本上是唯一一个在这个SVN回购工作,所以这不是像有棘手的合并处理,可能会混淆。但这让我很困扰,只是原则上(我就是这样)。我想要这个 树干

    你瞧,这里 .git/info/grafts ,这似乎正是我想要的。我甚至可以合并 主人 作为快进合并

    所以我想知道的是,这个想法有什么危险吗?如果我,比方说,养成了一个习惯,每次做移植手术 rebase / dcommit 跳舞,我是在自找麻烦吗?我应该忘掉自己吗?:-)

    2 回复  |  直到 15 年前
        1
  •  2
  •   Bill T.    14 年前

    老问题,我知道,但是:

    我认为保持“树干”和“主人”之间的区别会让你的生活变得更加艰难。”“master”通常应该指向svn树的顶部,或者指向您将要提交的快速修复程序。但是,当您捆绑了一系列更改并提交了它们之后,我认为下一个合乎逻辑的步骤是设置一个嫁接,以便您提交的更改是它的svn父级和您用来为票据编写代码的主题分支的子级。换句话说,从git的角度来看,您提交的更改变成了svn树和您的主题分支的合并——从很多方面来说,这就是它。根本不需要为主题分支创建真正的git合并。

        2
  •  0
  •   Arafangion    15 年前

    我建议你抛弃svn,因为你是唯一一个使用它并坚持使用git的人,但是如果你因为任何原因不能做到这一点,那么我建议你停止与你的工具作斗争,只使用通常意义上的gitsvn。

    您仍然可以使用reflog进行一段时间的本地更改。如果你真的想保留你自己的本地黑客,那就考虑给他们贴标签什么的,这样他们就不会弄乱你的主分支。