显然,当在非Bazaar目录中给定URL作为参数并执行时,bzr clone
,bzr branch
和bzr checkout
都会执行相同的操作。
那么对于后续的Bazaar工作流程有什么区别吗?例如bzr commit
,bzr update
等。
显然,当在非Bazaar目录中给定URL作为参数并执行时,bzr clone
,bzr branch
和bzr checkout
都会执行相同的操作。
那么对于后续的Bazaar工作流程有什么区别吗?例如bzr commit
,bzr update
等。
分支和克隆相同,但分支和检出是不同的。
$ bzr help branch ... 别名: get, clone 另请参阅: checkout
查看检出教程,您会发现检出基本上将您执行的每个操作直接绑定到分支。因此,您进行的任何操作都会在执行时push
-- 显然这是巨大的工作流差异。
分支和检出的区别
首先要说的是,使用检出可以做的事情,在普通分支中也可以做到。检出只是启用了不同的默认值和工作流助手。
检出的作用
使用检出时,每当您在本地分支中创建新条目时,它也会在远程分支中创建相应的条目。这对应于
bzr commit
和bzr pull
等命令。如果您尝试提交新更改,并且远程分支与本地分支的状态不同,则会阻止您,并让您知道您已过期。您可以使用bzr update
将远程更改应用于本地。
bzr switch
而不是cd <branch-dir>
来在分支之间切换,代码始终可以位于同一目录中。这对于使用IDE工具或提供本地版本的Web项目非常方便。 - Adam Glauserclone
的情况。
更新:根据评论,checkout提供完整的历史记录;这似乎是正确的。从语义上讲,checkout看起来和感觉像是本地具有集中式版本控制系统检出的分支;它通过保留本地历史记录(您可以离线浏览-加号),但将其链接回原始历史记录来实现这一点,因此只有当您处于最新状态并且提交自动推送时才能提交。此外,通过取消绑定检出,可以在没有连接的情况下提交,此时它变成了常规分支。正如其他帖子所说,“bzr checkout”是“bzr clone/branch”的超集,因为“bzr checkout”创建了一个 绑定分支。绑定分支在执行更新操作时从源代码库中拉取,并在执行提交操作时将更改推送到源代码库。
要绑定已克隆的分支或取消绑定已检出的分支,请使用“bzr bind” / “bzr unbind”。
bzr clone
命令。目前它是bzr branch
的别名,但未来可能会更改其功能。 - bialix