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
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
.
Assurez-vous que vous avez bien inséré la nouvelle branche en amont dans votre dépôt/ local :
git fetch upstream
pour récupérer la nouvelle branche en amontCréez et basculez vers une version locale de la nouvelle branche en amont (newbranch
):
git checkout -b newbranch upstream/newbranch
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
)
J'utiliserais
git checkout -b <new_branch> upstream/<new_branch>
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/*
--track
?
git branch --track branch upstream/branch
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