gpt4 book ai didi

version-control - bzr pull vs bzr合并

转载 作者:行者123 更新时间:2023-12-03 13:44:19 24 4
gpt4 key购买 nike

我正在使用bzr来完成一个非常简单的任务:获取GNU Emacs的开发版本。最初的bzr branch之后,我想保持本地版本为最新。我阅读了有关bzr pullbzr merge的文档,但没有任何意义。我尝试了bzr merge几天,发现bzr merge通常会导致无法解决的冲突。请注意,我没有进行任何本地更改。是bzr pull推荐的方法吗?

编辑1(添加了从Chris Conway窃取的图):

remote: A --> B --> C --> D
\ \
(branch) (merge)
\ \
local: \--> A (no change) \--> why conflicts?


我了解git和darcs,但不了解bzr。类似于git或darcs会很有帮助。

编辑2:是 update应该只与 checkout一起使用吗?在 update中执行 branch似乎没有任何作用。

最佳答案

请注意,我没有做任何本地
变化。推荐bzr pull
方式?


是的,听起来bzr pull是适合您使用的命令。 pull取得一个远程源分支,并将所有更改从它复制到较旧版本的本地目标分支。 (我在这里使用“远程”和“本地”来表示“源”和“目的地。”任何两个分支都可以,甚至两个本地分支也可以。)

remote: A --> B --> C --> D
\ \
(branch) (pull)
\ \
local: \--> A (no change) \--> D


pull仅在两个分支没有分歧的情况下才有效,即,目标的修订版是源的旧修订版。 push只是相反的操作:它将旧分支中的本地分支中的更改复制到远程分支。

remote: A      (no change)       --> C
\ /
(branch) (push)
\ /
local: \--> A --> B --> C


当您要将更改复制到与远程分支不同的本地分支时,使用 merge

remote: A --> B --> C --> D
\ \
(branch) (merge)
\ \
local: \--> A --> X --> Y --> Z


在这里, Z包括对 D的所有更改和对 Y的更改。在这种情况下, pull是不可能的。请注意,在 commit之后必须 merge才能保存新的合并修订,而拉动会自动将分支带到保存的修订点。

checkout允许您在类似于CVS / SVN的模式下使用bzr:本地分支将“附加”到远程分支; commit s将被自动 push;如果远程分支分歧,则提交将失败; update只是“附加的”远程分支中的 merge

关于version-control - bzr pull vs bzr合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com