2

我最近一直在玩 Git,以掌握分布式版本控制。现在我正在查看 Bazaar,但不知道如何创建本地分支,即当我想提交更改时不必推送到的分支。使用 Git,我会做

git branch branch_name

或者

git checkout -b branch_name

然后,我可以在本地分支中工作,随时提交更改,而无需将更改推送到远程仓库。当我完成分支时,我可以将它合并到我的本地主分支。如果我愿意,我可以将这些更改推送到远程仓库。

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

4

4 回答 4

4

是的,你绝对可以做到。

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

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

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

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

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

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

于 2009-10-29T18:34:31.217 回答
3

如果您以正确的方式设置存储库,则可以以与 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分支中,该分支将与主线位于同一点。

于 2009-12-15T21:14:11.110 回答
2

老问题,但现在看来,托管分支是解决这个问题的方法。Bzr 包含一个具有各种便利功能的插件colo-init,包括用于创建启用 colocated-branch 的存储库以及colo-branch用于实际使用/创建分支(我还没有广泛使用这些功能,所以我可能有点混乱......)

于 2012-10-06T19:05:28.723 回答
1

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
于 2009-10-29T18:52:47.740 回答