Comment synchroniser avec un référentiel Git distant?


94

J'ai forké un projet sur github, apporté quelques modifications, jusqu'ici tout va bien.

En attendant, le référentiel à partir duquel je me suis dérivé a changé et j'aimerais obtenir ces modifications dans mon référentiel. Comment je fais ça ?

Réponses:


77

Généralement, git pullc'est suffisant, mais je ne suis pas sûr de la mise en page que vous avez choisie (ou que github a choisi pour vous).


4
git pull ne fonctionnera que si vous avez configuré la télécommande à récupérer et la branche vers laquelle fusionner.
Abizern

Je suppose que cela a été fait pendant la phase de "fabrication d'une fourchette". À moins que cette information ne soit jetée, elle devrait toujours être là.
Šimon Tóth

utiliser git pull avec https ne fonctionnait pas, mais avec http ça fonctionnait ... maintenant je suis à jour, merci!
George Profenza

@GeorgeProfenza Ce n'est pas sûr. Pensez à utiliserssh
JVE999

66

En supposant que leurs mises à jour se trouvent sur le maître et que vous êtes sur la branche dans laquelle vous souhaitez fusionner les modifications.

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

Notez également que vous souhaiterez ensuite repousser la fusion vers votre copie du référentiel:

git push origin master

l'ajout a fonctionné, l'extraction n'a pas fait :(, j'ai eu une erreur liée à https: erreur: protocole https non pris en charge ou désactivé dans libcurl lors de l'accès à github.com/mrdoob/three.js.git/info/refs fatal: la requête HTTP a échoué Des
indices

Quelle plateforme? On dirait qu'une des dépendances de git n'est pas complète.
Mark Hibberd

Pour contourner le problème, vous pouvez également utiliser le protocole git plutôt que https, par exemple git remote set-url git: //github.com/mrdoob/three.js.git - puis essayez le git pull.
Mark Hibberd

fonctionnant sur osx. J'ai réussi à l'obtenir en utilisant git pull github.com/mrdoob/three.js.git master
George Profenza

3
faute de frappe dans les commandes, je pense, vous commencez par original, puis passez àorigin
Benjol


5

Vous devez ajouter le référentiel d'origine (celui que vous avez créé) en tant que distant.

git remote add github (clone url pour le référentiel orignal)

Ensuite, vous devez apporter les modifications à votre référentiel local

git chercher github

Vous aurez maintenant toutes les branches du référentiel d'origine dans votre référentiel local. Par exemple, la branche principale sera github/master. Avec ces branches, vous pouvez faire ce que vous voulez. Fusionnez-les dans vos succursales, etc.


1
Je suggère le nom upstreamde la télécommande.
vidstige

@vidstige Ce qui n'est pas vraiment assez descriptif si vous avez plusieurs télécommandes pour un référentiel. Par exemple, j'ai souvent une télécommande sur Github et une télécommande sur Dropbox.
Abizern

eh bien, alors c'est bien sûr logique. C'est pourquoi il est formidable de pouvoir les nommer vous-même. Réalisez que votre configuration est probablement moins courante que d'avoir une origine appelée distante qui est votre propre fork et que vous avez ensuite l'original, qui est généralement nommé "en amont".
vidstige

-8

Pour Linux:

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

3
C'est le contraire de ce que recherchait OP.
Ryan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.