代码之家  ›  专栏  ›  技术社区  ›  ThisSuitIsBlackNot Olaf Dietsche

有集市的地方分店?

  •  2
  • ThisSuitIsBlackNot Olaf Dietsche  · 技术社区  · 15 年前

    我最近一直在玩Git,以了解分布式版本控制。现在我在看Bazaar,但是我不知道如何创建一个本地分支,也就是说,当我想提交更改时,不必强制执行的分支。有了Git,我会的。

    git branch branch_name

    git checkout -b branch_name

    然后,我可以在本地分支机构中工作,一边提交更改,而不必将更改推送到远程repo。当我完成与分支,我可以合并到我的本地主分支。如果我愿意,我可以将这些更改推送到远程回购。

    巴扎可以吗?Bazaar看起来更像SVN,分支只是单独的目录,所以可能不是。

    4 回复  |  直到 12 年前
        1
  •  4
  •   Pete    15 年前

    是的,你肯定能做到。

    假设在bzr+ssh://foo.com/repo/mainline有一个远程存储库。

    您可以通过执行以下操作创建本地分支:

    bzr branch bzr+ssh://foo.com/repo/mainline local_branch
    

    现在,您可以对本地分支进行更改并提交它们,而这些更改只在该本地目录中。例如。:

    cd local_branch
    touch foo
    bzr add foo
    bzr commit -m "Add foo."
    

    这将只在本地分支中添加foo。

        2
  •  3
  •   FryGuy    15 年前

    如果您以正确的方式设置存储库,那么您可以使用与Git类似的方式工作。

    cd ~/dev
    bzr init-repo
    bzr reconfigure --with-no-trees
    mkdir branches
    bzr branch bzr+ssh://foo.com/repo branches/mainline
    bzr checkout --lightweight branches/mainline working
    

    这将创建一个这样的结构:

    /dev
        /branches
            /mainline
            <other branches go here>
        /working
            <this is your working tree>
    

    如果您想创建分支,可以执行以下操作:

    cd ~/dev/checkout
    bzr branch --switch ~/dev/branches/mainline ~/dev/branches/some-feature
    

    现在你将进入 some-feature 分支,与主线位于同一点。

        3
  •  2
  •   jamessan    15 年前

    BZR与Git的不同之处在于,您不能切换由工作目录表示的分支。但是,您可以从工作目录进行分支,而不必从远程存储库进行分支。因此,而不是

    git clone git+ssh://foo.com/repo
    cd repo
    git checkout -b new_branch
    

    你会这样做

    bzr branch bzr+ssh://foo.com/repo
    bzr branch repo new_branch
    
        4
  •  2
  •   John Chadwick    12 年前

    老问题,但似乎 colocated branches 这是现在的方法。BZR包括 plugin 具有多种方便功能,包括 colo-init 用于创建集中的启用分支的存储库和 colo-branch 对于实际使用/创建分支(我还没有广泛地使用这些特性,所以可能有点混乱…)