Как вытащить локальное репо в git? - PullRequest
0 голосов
/ 18 сентября 2018

Мне нужно вытащить локальное репо в мой новый репо.Допустим, я хочу потянуть original на duplicate.Я видел решения для этого здесь, но есть некоторые проблемы для обоих, как объяснено ниже -

  1. Добавьте ветку original к удаленному с помощью git remote add original и затем вытяните это удаленное хранилище.Но у меня есть репо с тем же именем на удаленном репо, которое содержит логику компании, с которой я не буду возиться.Так что я не могу использовать этот метод.
  2. Используя git pull --help я обнаружил, что могу вытащить репо, используя git pull /path/to/repo's .git/file, но обе эти ветви принадлежат одному и тому же проекту, поэтому они имеют один и тот же файл .git.

Есть ли другой способ, которым я могу это сделать?Заранее спасибо

1 Ответ

0 голосов
/ 18 сентября 2018

Я думаю, что здесь есть недопонимание между понятиями 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 эти ветви.

...