Local branches with Bazaar?
最近,我一直在与Git一起玩耍,以了解分布式版本控制。 现在我正在查看Bazaar,但无法弄清楚如何创建本地分支,即当我要提交更改时不必将其推送到的分支。 有了Git,我会做
要么
然后,我可以在本地分支机构工作,随时进行更改,而不必将更改推送到远程存储库。 当我完成分支后,可以将其合并到本地主分支。 如果需要,我可以将这些更改推送到远程仓库中。
集市有可能吗? Bazaar似乎更像SVN,分支只是单独的目录,所以也许不是。
是的,您绝对可以做到。
假设在bzr + ssh://foo.com/repo/mainline有一个远程存储库
您可以通过执行以下操作来创建本地分支:
1 | bzr branch bzr+ssh://foo.com/repo/mainline local_branch |
现在,您可以对local_branch进行更改并将其提交,这些更改仅在该本地目录中。例如。:
1 2 3 4 | cd local_branch touch foo bzr add foo bzr commit -m"Add foo." |
那只会在本地分支中添加foo。
如果您以正确的方式设置存储库,则可以采用与git类似的方式进行工作。
1 2 3 4 5 6 | 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 |
这将创建如下结构:
1 2 3 4 5 6 | /dev /branches /mainline <other branches go here> /working <this is your working tree> |
如果要创建分支,可以执行以下操作:
1 2 | cd ~/dev/checkout bzr branch --switch ~/dev/branches/mainline ~/dev/branches/some-feature |
现在您将进入
这是一个古老的问题,但似乎并置分支机构是当今的发展之路。 Bzr包含一个具有各种便利功能的插件,其中包括
bzr与git的不同之处在于,您不能切换工作目录所代表的分支。但是,您可以从工作目录分支,而不必从远程存储库分支。所以代替
1 2 3 | git clone git+ssh://foo.com/repo cd repo git checkout -b new_branch |
你会做
1 2 | bzr branch bzr+ssh://foo.com/repo bzr branch repo new_branch |