Я думаю, что здесь есть недопонимание между понятиями repo
, branch
и remote
.
Насколько я понимаю, вы хотите "перетащить локальную ветвь в другую локальную ветвь" (т.е."тянуть" ветку, а не репо).pull
обычно не является терминологией, которую мы используем для локальных ветвей (операция pull
включает извлечение чего-либо из удаленного репо).
Если это то, что вы хотите сделать, есть две опции:
- Вы можете использовать, например,
git merge my_task_branch
, чтобы объединить my_task_branch
в текущую ветвь. - Вы можете использовать
git rebase master
, чтобы переместить изменения, внесенные в текущую ветку, поэтомучто они основаны на последних изменениях в локальной ветви master
.
Обе эти опции обеспечат внесение изменений в другую ветвь (my_task_branch
/ master
в приведенных выше примерах)доступны в текущей ветви.
Некоторая терминология:
Репо: Репо имеет один.git
каталог.Если у вас есть два репозитория, они (по определению) имеют два разных каталога .git
, в противном случае это один и тот же репо.Когда вы говорите «обе ветви одного и того же проекта, поэтому они имеют одинаковый файл .git
», вы имеете в виду, что обе ветви находятся в одном репо.
Филиал: Aрепо может иметь несколько веток.Каждая ветвь представляет историю изменений, которые могут отличаться.Вы можете внести некоторые изменения в одну ветку, зафиксировать их.А затем извлеките другую ветку, чтобы внести в нее некоторые другие изменения.
Удаленный: Удаленный - это ссылка на другой репозиторий, из / в которого вы можете получать / выдвигать изменения.
Pull: A git pull
операция состоит из двух частей.Во-первых, коммиты извлекаются из какого-либо другого удаленного репо (это можно сделать отдельно с помощью команды git fetch
).После этого некоторая ветка из удаленного репо объединяется с текущей веткой (команда git merge
)
Локальная ветка против удаленной ветки: Вы можете создать любое количество локальных веток в вашем репо.Но локальная ветка отличается от удаленной.Вы можете создать любое количество локальных филиалов, никак не влияя на удаленное репо.Локальные ветви становятся видимыми только в удаленном репо, если вы git push
эти ветви.