J'ai donc un dépôt git que j'ai cloné à partir d'une source en amont sur ghithub. J'y ai apporté quelques modifications (non validées et dans la branche master). Ce que je veux faire, c'est pousser mes modifications sur ma page github en tant que nouvelle branche et que github le voit toujours comme un fork.
Est-ce possible? Je suis assez nouveau sur git et github. Ma question avait-elle même un sens?
La façon la plus simple à laquelle je peux penser (qui, j'en suis sûr, est la manière la plus courante), est de bifurquer le dépôt sur github. Clonez-le localement dans un répertoire différent. Ajoutez le référentiel d'origine en amont. Créez une branche dans ce nouveau dépôt fourchu. Copiez mes modifications de code à la main dans le nouveau dépôt local. Et puis poussez-le vers mon github.
Est-ce un cas d'utilisation courant qu'il existe un moyen plus simple de le faire sans dupliquer les répertoires?
Je suppose que je demande ici par opposition à SO car je suis sur Linux en utilisant la ligne de commande git et les gens ici donnent de meilleures réponses imo =]
la source
Réponses:
Vous pouvez tout faire à partir de votre référentiel existant (pas besoin de cloner le fork dans un nouveau référentiel (local), créer votre branche, copier vos commits / modifications, etc.).
Préparez vos commits à être publiés.
Affinez les validations locales existantes (par exemple avec
git commit --amend
et / ougit rebase --interactive
).Validez l'une de vos modifications non validées que vous souhaitez publier (je ne sais pas si vous vouliez dire que vous avez des validations sur votre maître local et des modifications non validées, ou simplement des modifications non validées; incidemment, les modifications non validées ne sont pas «sur un branche ”, ils sont strictement dans votre arbre de travail).
Renommez votre maître branche pour lui donner le nom que vous voulez pour votre « nouvelle branche ». Ce n'est pas strictement nécessaire (vous pouvez passer de n'importe quelle branche à n'importe quelle autre branche), mais cela réduira probablement la confusion à long terme si votre branche locale et la branche de votre fork GitHub ont le même nom.
Forkez le dépôt GitHub en amont
(par exemple) en
github.com:UpstreamOwner/repostory_name.git
tant que(par exemple)
github.com:YourUser/repository_name.git
.Cela se fait sur le site Web de GitHub (ou sur un «client» qui utilise les API GitHub), aucune commande Git locale n'est impliquée.
Dans votre référentiel local (celui qui a été initialement cloné à partir du référentiel GitHub en amont et qui a vos modifications dans son maître ), ajoutez votre référentiel fork en tant que distant:
Poussez votre branche vers votre référentiel fork sur GitHub.
Éventuellement, renommez les télécommandes pour que votre fork soit connu comme «origine» et l'amont comme «amont».
Une raison pour renommer les télécommandes serait parce que vous voulez pouvoir utiliser
git push
sans spécifier de référentiel (il s'agit par défaut de «origine»).la source
-u
option peut permettre à votre succursale locale demy-feature
suivre la même succursale distanteorigin/my-feature
. La commande est:git push -u github my-feature
Il existe un outil:
hub
Maintenant vous pouvez:
la source