Mise à jour d'un référentiel local avec les modifications d'un référentiel GitHub
567
J'ai un projet vérifié localement depuis GitHub, et ce référentiel distant a depuis été modifié. Quelle est la commande correcte pour mettre à jour ma copie locale avec les dernières modifications?
Il vaut la peine de noter que github a produit un ensemble de guides très instructifs et utiles pour utiliser git et github. Je les ai trouvés inestimables lors de ma première transition vers Git. help.github.com
Il se plaignait: "Vous avez demandé à tirer de la 'source' distante, mais vous n'avez pas spécifié de branche. Comme il ne s'agit pas de la télécommande configurée par défaut pour votre branche actuelle, vous devez spécifier une branche sur la ligne de commande." J'ai donc essayé "$ git pull origin master" et cela a bien fonctionné.
Juan Lanus
8
git pull origin master
Andrzej Rehmann
1
J'ai supprimé certains fichiers et ça ne les ramène pas, une idée?
Aquarius Power
1
faisons-nous un git commit avant d'exécuter cela? chaque fois que j'exécute cette commande, je me retrouve avec 18347213846 fichiers modifiés que je n'ai même pas touchés !!!
Orkun Ozen
5
Je viens d'apprendre à la dure que l'extraction d'une nouvelle branche de référentiel distant ne crée pas une branche de ce nom localement, mais tire plutôt cette branche distante dans la branche locale qui se trouve être extraite. Je ne sais pas comment annuler ce court-circuitage et re-clonage du référentiel. Dans tous les cas, il semble que la branche locale soit indépendante de la branche distante et il faut toujours s'assurer que vous êtes dans la branche locale voulue avant de tirer.
Joe Lapp
87
Cela devrait fonctionner pour chaque dépôt par défaut:
git pull origin master
Si votre branche par défaut est différente de master, vous devrez spécifier le nom de la branche:
Pas vraiment. fatal: impossible de trouver le maître de référence à distance
Victor Eijkhout
1
@Eijkhout probablt dans votre cas de prise en charge, il n'y a pas de branche principale et une autre branche est définie par défaut
Andrzej Rehmann
62
git fetch [remotename]
Cependant, vous devrez fusionner toutes les modifications dans vos succursales locales. Si vous êtes sur une branche qui suit une branche distante sur Github, alors
git pull
fera d'abord une extraction, puis fusionnera dans la branche suivie
Si vous utilisez la git fetchméthode, vous voudrez également récupérer les balises avec git fetch -t. Si vous êtes satisfait des modifications ( git log HEAD..FETCH_HEAD), vous pouvez ensuite les fusionner avec git merge FETCH_HEAD.
Brad Grissom
16
Cette question est très générale et il y a quelques hypothèses que je vais faire pour la simplifier un peu. Nous supposerons que vous souhaitez mettre à jour votre masterbranche.
Si vous n'avez effectué aucune modification localement, vous pouvez utiliser git pullpour supprimer les nouveaux validations et les ajouter à votre master.
git pull origin master
Si vous avez apporté des modifications et que vous souhaitez éviter d'ajouter un nouveau commit de fusion, utilisez git pull --rebase.
git pull --rebase origin master
git pull --rebase fonctionnera même si vous n'avez pas apporté de modifications et est probablement votre meilleur appel.
Réponses:
Probablement:
la source
Cela devrait fonctionner pour chaque dépôt par défaut:
Si votre branche par défaut est différente de
master
, vous devrez spécifier le nom de la branche:la source
Cependant, vous devrez fusionner toutes les modifications dans vos succursales locales. Si vous êtes sur une branche qui suit une branche distante sur Github, alors
fera d'abord une extraction, puis fusionnera dans la branche suivie
la source
git fetch
méthode, vous voudrez également récupérer les balises avecgit fetch -t
. Si vous êtes satisfait des modifications (git log HEAD..FETCH_HEAD
), vous pouvez ensuite les fusionner avecgit merge FETCH_HEAD
.Cette question est très générale et il y a quelques hypothèses que je vais faire pour la simplifier un peu. Nous supposerons que vous souhaitez mettre à jour votre
master
branche.Si vous n'avez effectué aucune modification localement, vous pouvez utiliser
git pull
pour supprimer les nouveaux validations et les ajouter à votremaster
.Si vous avez apporté des modifications et que vous souhaitez éviter d'ajouter un nouveau commit de fusion, utilisez
git pull --rebase
.git pull --rebase
fonctionnera même si vous n'avez pas apporté de modifications et est probablement votre meilleur appel.la source
Avec un maître d'origine déjà défini, il vous suffit d'utiliser la commande ci-dessous -
la source