我最近一直在玩Git,以掌握分布式版本控制。现在我正在看Bazaar,但是无法弄清楚如何创建一个本地分支,即当我想提交更改时我不需要推送的分支。有了Git,我会做
git branch branch_name
或
git checkout -b branch_name
然后我可以在我的本地分支中工作,随时提交更改,而无需将更改推送到远程仓库。当我通过分支时,我可以将它合并到我的本地主分支。如果我想,我可以将这些更改推送到远程仓库。
Bazaar有可能吗? Bazaar看起来更像SVN,分支只是单独的目录,所以也许不是。
答案 0 :(得分:4)
是的,你绝对可以做到。
假设在bzr + ssh上有一个远程存储库://foo.com/repo/mainline
您可以通过执行以下操作来创建本地分支:
bzr branch bzr+ssh://foo.com/repo/mainline local_branch
现在,您可以对local_branch进行更改并提交它们,并且这些更改仅在该本地目录中。 e.g:
cd local_branch
touch foo
bzr add foo
bzr commit -m "Add foo."
这只会在本地分支中添加foo。
答案 1 :(得分: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
分支,它将与主线位于同一点。
答案 2 :(得分:2)
旧问题,但现在似乎colocated branches是这样做的方法。 Bzr包含一个plugin,具有各种便利功能,包括colo-init
用于创建支持colocated-branch的存储库,colo-branch
用于实际使用/创建分支(我还没有广泛使用这些功能,所以我可能有点混乱..)
答案 3 :(得分: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