Як синхронізувати з віддаленим сховищем Git?


94

Я розгалужив проект на github, вніс деякі зміни, поки що настільки гарні.

Тим часом змінилося сховище, яке я розгалужив, і я хотів би внести ці зміни до свого сховища. Як це зробити?

Відповіді:


77

Загалом git pullдостатньо, але я не впевнений, який макет ви вибрали (або вибрав для вас github).


4
git pull не буде працювати, якщо ви не налаштували пульт дистанційного керування для завантаження та гілку для об'єднання.
Abizern

Я припускаю, що це було зроблено під час фази "виготовлення вилки". Якщо цю інформацію не викинули, вона все одно повинна бути там.
Шимон Тот,

використання git pull з https не спрацювало, але з http це зробило ... тепер я в курсі, дякую!
Джордж Профенца,

@GeorgeProfenza Це не безпечно. Подумайте про використанняssh
JVE999

66

Припускаючи, що їх оновлення знаходяться на master, а ви знаходитесь у гілці, в яку ви хочете об’єднати зміни.

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

46

Ви повинні додати оригінальний репо як вищий потік.

Все це добре описано тут: 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-адреса клонування для сховища orignal)

Потім вам потрібно внести зміни до вашого локального сховища

git fetch github - -

Тепер у вас будуть усі гілки оригінального сховища у вашому локальному. Наприклад, головна гілка буде github/master. За допомогою цих гілок ви можете робити те, що хочете. Об'єднайте їх у свої гілки тощо


1
Я пропоную назву upstreamпульта дистанційного керування.
vidstige

@vidstige Що насправді недостатньо описово, якщо у вас є кілька пультів дистанційного керування для сховища. Наприклад, у мене часто є пульт на Github і пульт на Dropbox.
Abizern

ну, тоді це, звичайно, має сенс. Тому чудово мати можливість самостійно називати їх. Зрозумійте, що ваше налаштування, мабуть, рідше, ніж наявність одного віддаленого виклику джерела, який є вашою власною вилкою, і тоді у вас є оригінал, який зазвичай називається "вище".
vidstige

-8

Для Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all

3
Це протилежне тому, що шукав ОП.
Райан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.