Как вы связываете два репозитория Git?

Я управлял проектом в локальном репозитории Git, и теперь я хочу «опубликовать» его на GitHub.

Я создал соответствующий репозиторий GitHub и знаю, что мог бы легко клонировать его локально, скопировать файлы из старого репо и затем зафиксировать, но я хотел бы сохранить свою локальную историю. Можно ли связать мое локальное Git-репо с этим новым на GitHub и перенести всю мою историю на него, и если да, то как мне это сделать?

2 ответа2

2

Вы можете добавить репозиторий Github в качестве удаленного репозитория с помощью команды:

git remote add origin git@github.com/UserName/Repository

И затем нажмите на хранилище, используя:

git push origin master

Это сохранит всю историю вашего текущего локального хранилища и отправит ее на Github.

origin - фактическое стандартное имя для удаленного репозитория, если оно у вас есть. Вы могли бы назвать это как-то еще.

2

Хотя ответ Mtak верен для более старых версий Git, более новые версии Git будут работать следующим образом.

Первым шагом все равно будет:

git remote add origin git@github.com/UserName/Repository

Затем - на тот случай, если вы работали с другими ветками - я бы порекомендовал переключиться на локальную master ветку следующим образом:

git checkout master

После этого просто запустите команду «push»:

git push

В некоторых случаях вам может потребоваться форсировать этот «толчок» с помощью флага -f :

git push -f

Но для первого нажатия вам может потребоваться выполнить команду, подобную этой, чтобы установить исходный «источник», а также «толчок»:

git push --set-upstream origin master

И снова, в случае, если вам нужно принудительно нажать «push», просто запустите ту же команду, но с флагом -f например так:

git push -f --set-upstream origin master

И если у вас есть другие ветки в вашем локальном репозитории, которые вы хотели бы перенести в «origin», вам, возможно, придется просто запустить эту же команду с новым именем ветки. Например, допустим, у вас есть ветвь с именем «разработка», вам просто нужно проверить эту ветку следующим образом:

git checkout develop

А затем установите исходный «источник» для «развития» следующим образом:

git push --set-upstream origin develop

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .