Как синхронизироваться с удаленным репозиторием Git?

94

Я форкнул проект на github, внес некоторые изменения, пока все хорошо.

Тем временем репозиторий, из которого я разветвлялся, изменился, и я хотел бы внести эти изменения в свой репозиторий. Как я могу это сделать ?

Джордж Профенса
источник

Ответы:

77

Обычно этого git pullдостаточно, но я не уверен, какой макет вы выбрали (или за вас выбрал github).

Шимон Тот
источник
4
git pull не будет работать, если вы не настроили удаленный доступ и ветку для слияния.
Abizern
Я предполагаю, что это было сделано на этапе создания вилки. Если эта информация не была выброшена, она должна быть там.
Шимон Тот
использование git pull с https не работает, но с http работает ... теперь я в курсе, спасибо!
Джордж Профенза
@GeorgeProfenza Это небезопасно. Рассмотрите возможность использованияssh
JVE999
66

Предполагая, что их обновления находятся на главном сервере, а вы находитесь в ветви, в которую хотите объединить изменения.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

Также обратите внимание, что затем вы захотите вернуть слияние в свою копию репозитория:

git push origin master
Марк Хибберд
источник
добавление сработало, вытягивание - нет :(, у меня возникла ошибка, связанная с https: error: протокол https не поддерживается или отключен в libcurl при доступе к github.com/mrdoob/three.js.git/info/refs fatal: HTTP-запрос не выполнен Подсказки?
Джордж Профенса
Какая платформа? Похоже, что одна из зависимостей git не завершена.
Марк Хибберд,
В качестве обходного пути вы также можете использовать протокол git, а не https, например git remote set-url git: //github.com/mrdoob/three.js.git - затем попробуйте git pull.
Марк Хибберд,
работает на osx. Мне удалось получить его с помощью git pull github.com/mrdoob/three.js.git master
Джордж Профенза
3
опечатка в командах, я думаю, вы начинаете с original, а затем перейти кorigin
Benjol
47

Вы должны добавить исходное репо в качестве восходящего потока.

Здесь все хорошо описано: https://help.github.com/articles/fork-a-repo

git remote add upstream https://github.com/octocat/Spoon-Knife.git
git fetch upstream
git merge upstream/master
git push origin master
Alex
источник
5

Вам нужно добавить исходный репозиторий (тот, который вы разделили) в качестве удаленного.

git remote add github (клонировать URL-адрес исходного репозитория)

Затем вам нужно внести изменения в ваш локальный репозиторий.

git fetch github

Теперь у вас будут все ветки исходного репозитория в вашем локальном. Например, главная ветка будет github/master. С помощью этих веток вы можете делать все, что хотите. Объедините их в свои ветки и т. Д.

Abizern
источник
1
Предлагаю название upstreamпульту.
vidstige
@vidstige Что на самом деле недостаточно информативно, если у вас есть несколько пультов дистанционного управления для репозитория. Например, у меня часто есть пульт на Github и пульт на Dropbox.
Abizern
ну тогда это конечно имеет смысл. Вот почему здорово иметь возможность называть их самому. Поймите, что ваша установка, вероятно, менее распространена, чем наличие одного удаленного источника с именем origin, который является вашей собственной вилкой, а затем у вас есть оригинал, который обычно называется «upstream».
vidstige
-8

Для Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all
Гость
источник
4
Это противоположно тому, что искал OP.
Райан