Вы должны помнить, что существуют различные типы ветвей:
- (чисто) местные ветви, т.е. ветви вы фиксируете,
- Отделы, которые живут в удаленном репозитории, из-за отсутствия лучшего термина. Возможно, вы знаете удаленный репозиторий под удаленным именем, например
origin
. Однако с точки зрения хранилища такая ветка местная. Добро пожаловать в Управление распределенной версией! :)
- Удаленное отслеживание отраслей. Также просто называется удаленных ветвей, как в Pro Git book, но я нахожу эту фразу путаной; дистанционный следящий ответвление более точный. Это специальные местные филиалы, единственной целью которых является отражение состояния ветвей , которые живут в удаленном репозитории во время вашего последнего общения с сервером. В частности, вы не можете связываться с ветвями этого типа.
Здесь branch_name
является локальной ветви, тогда как origin/branch_name
является дистанционным отслеживанием ветви; он отражает состояние соответствующей ветки , которая живет в origin
.
Сразу после запуска
git fetch
дистанционного слежения филиал origin/master
и соответствующий ветви, которые живут в origin
должны быть идеально синхронизированы.Это не должно быть сюрпризом, то, что
git push origin origin/branch_name
ничего не толкать: вы, по сути пытается подтолкнуть материал, который уже присутствует в родословной соответствующего ветви, которые живут в origin
.
Однако, если ваш местного филиал, branch_name
, впереди один или несколько фиксаций,
затем запустить
git push origin branch_name
подтолкнут фиксации, содержащиеся в branch_name
, но не в блоке , которые живут в origin
:
Куда входит github в эту игру? 'git' позволяет использовать многие удаленные серверы, а github - лишь один из них. –