Обратите внимание, что я не делал местных
изменения. bzr pull
рекомендуется
способ
Да, похоже, что bzr pull
- подходящая команда для вашего использования. pull
берет ветку удаленного источника и копирует любые изменения из нее в локальную ветку назначения в более старой версии. (Я использую «удаленный» и «локальный» здесь для обозначения «источник» и «пункт назначения». Подойдут любые две ветви, даже две локальные ветви.)
remote: A --> B --> C --> D
\ \
(branch) (pull)
\ \
local: \--> A (no change) \--> D
A pull
работает только в том случае, если две ветви не расходятся, т. Е. Если ревизия места назначения является старой ревизией источника. push
является только противоположной операцией: она копирует изменения в локальной ветке в удаленную ветку со старой версией.
remote: A (no change) --> C
\ /
(branch) (push)
\ /
local: \--> A --> B --> C
A merge
используется, когда вы хотите скопировать изменения в локальную ветвь, которая отличается от удаленной ветки.
remote: A --> B --> C --> D
\ \
(branch) (merge)
\ \
local: \--> A --> X --> Y --> Z
Здесь Z
включает все изменения с D
и изменения с Y
. A pull
в этом случае невозможен. Обратите внимание, что вы должны commit
после merge
, чтобы сохранить новую объединенную ревизию, тогда как вытягивание автоматически приводит ветвь к сохраненной точке ревизии.
A checkout
позволяет использовать bzr в режиме, аналогичном CVS / SVN: локальная ветвь будет «присоединена» к удаленной ветке; commit
s будет автоматически push
ed; если удаленная ветвь разошлась, фиксация завершится неудачей; update
- это просто merge
из «прикрепленной» удаленной ветви.