2016-11-07 2 views
2

У меня есть репо GitHub, которое я хочу скопировать и нажать на новый удаленный URL-адрес в другой организации. Я хотел бы сохранить как можно больше истории, например, ветви и коммиты, но я не уверен, как это сделать. У моей локальной копии нет всех филиалов.Копирование GitHub репо на новый удаленный URL

Я видел похожие вопросы, но я хотел подтвердить, так как это довольно рискованная задача.

Есть ли что-то вроде этого?

git fetch origin

git branch -a

git remote add new-origin [email protected]:user/repo.git

git push --all new-origin

git push --tags new-origin

git remote -v

git remote rm origin

git remote rename new-origin origin

+1

Почему бы не клонировать его на GitHub? – SLaks

+0

@SLaks Клон, а потом что? Я уже клонировал его локально, но я хочу сохранить историю –

+0

Извините; Я имел в виду fork это – SLaks

ответ

0

Если вы планируете держать обе конечные точки вы могли бы сделать git remote set-url --add origin https://new.url/path/to/repo.git, и это сделает его так, когда вы нажимаете, вы будете толкать в обе конечные точки одновременно. Однако вытаскивание происходит только из одного источника. Если тянуть является проблемой, я рекомендую использовать новый пульт. Ваши шаги аналогичны тем, которые вы упомянули ранее:

Чтобы переместить текущую историю в новую конечную точку, полностью не связанную с текущей конечной точкой, выполните следующие действия. Обратите внимание, что это приведет к отключению локального репозитория от текущей конечной точки и присоединению к новой конечной точке.

1) git pull --all

2) git pull -t или git pull --tags

3) git remote set-url origin [email protected]:user/repo.git

4) git push --all

5) git push --tags

и если что-то пойдет не так, все, что вам нужно сделать это клон от вашего ori ginal repo.git, которое в настоящее время установлено в

0

Да, ваши шаги были правильными. Но обратите внимание на ниже:

  1. Для первого шага, вы можете использовать вместо git pull (тянуть функция выборки + слияние).

  2. После завершения шагов, о которых вы упомянули, вы найдете только ветви первого репо (а не новый URL). Используйте git branch –a, вы найдете все ветви первого репо и новый репозиторий URL на пульте дистанционного управления.

  3. Вам необходимо создать локальные ветви для отслеживания на пульте дистанционного управления соответственно. Например, git checkout –b branch_name1 origin/branch_name1, git checkout –b branch_name2 origin/branch_name2 и т. Д.

  4. Теперь вы обнаружите, что локальная копия имеет как ветви для первого репо и ветви для нового URL-адреса, так и историю фиксации.