Как синхронизироваться с удаленным репозиторием 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

5

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

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

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

git fetch github

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


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.
Райан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.