web-dev-qa-db-fra.com

Github: Importer une branche en amont dans fork

J'ai un fork (Origin) d'un projet (upstream) sur github. Maintenant, le projet en amont a ajouté une nouvelle branche, je veux importer dans mon fork. Comment je fais ça?

J'ai essayé de vérifier la télécommande et de créer une branche en plus de cela, mais cela configure la branche de la manière que git Push tente de transmettre à la variable upstream:

git checkout upstream/branch
git checkout -b branch

modifier

Ce n'était peut-être pas clair, mais je souhaite ajouter la branche à mon référentiel local afin de pouvoir la transmettre à Origin (mon fork) via git Push. Parce que les référentiels en amont sont généralement en lecture seule et que vous le chargez pour contribuer.

Donc, je veux essentiellement extraire une branche inexistante sur Origin dont le contenu sera extrait de upstream.

145
poke
  1. Assurez-vous que vous avez bien inséré la nouvelle branche en amont dans votre dépôt/ local

    • Tout d’abord, assurez-vous que votre arbre de travail est propre (commit/stash/annuler toutes les modifications) 
    • Ensuite, git fetch upstream pour récupérer la nouvelle branche en amont
  2. Créez et basculez vers une version locale de la nouvelle branche en amont (newbranch): 

    • git checkout -b newbranch upstream/newbranch
  3. Lorsque vous êtes prêt à envoyer la nouvelle branche vers Origin

    • git Push -u Origin newbranch 

Le commutateur -u configure le suivi sur la télécommande spécifiée (dans cet exemple,Origin)

219
urschrei

J'utiliserais

git checkout -b <new_branch> upstream/<new_branch>
6
Svenito

J'ai eu des problèmes avec cela aussi, et Google m'a emmené ici. Les solutions n'ont pas fonctionné cependant. Mon problème était que lorsque j'ai ajouté mon amont, il a configuré ma configuration git pour extraire uniquement le maître, plutôt que toutes les branches .. Ça ressemblait à ça

[remote "somebody"]
        url = [email protected]:somebodys/repo.git
        fetch = +refs/heads/master:refs/remotes/upstream/master

Éditer .git/config comme suit a résolu mon problème

[remote "somebody"]
        url = [email protected]:somebodys/repo.git
        fetch = +refs/heads/*:refs/remotes/upstream/*
3
Ian Will

--track?

git branch --track branch upstream/branch
0
troelskn

Les étapes suivantes ont bien fonctionné pour moi (en supposant que le nom de la branche en amont est branch):

$ git fetch upstream
$ git checkout branch
$ git Push Origin
0
Eneko Alonso