Jusqu'à présent, j'ai suivi les étapes suivantes:
- Cloné un dépôt Git distant
- Ramifié la branche principale à un expérimental
- code édité / testé / engagé dans la branche expérimentale
Maintenant, je ne suis pas prêt à fusionner expérimental dans master. Je veux cependant le repousser vers le référentiel distant car c'est le référentiel que je partage avec quelques collègues. J'aimerais qu'ils voient ce que j'ai fait dans la branche expérimentale. En règle générale, j'accède simplement au repo distant via SSH.
Comment partager ma branche locale sur le référentiel distant, sans affecter la branche principale du référentiel distant?
git
version-control
distributed
Coocoo4Cocoa
la source
la source
Réponses:
Selon la page de manuel de git push :
Trouvez une référence qui correspond
experimental
dans le référentiel source (très probablement, elle trouveraitrefs/heads/experimental
), et mettez à jour la même référence (par exemplerefs/heads/experimental
) dans le référentiel d'origine avec elle.S'il
experimental
n'existait pas à distance, il serait créé .C'est la même chose que:
Créez la branche
experimental
dans le référentiel d'origine en copiant laexperimental
branche actuelle .Ce formulaire n'est nécessaire que pour créer une nouvelle branche ou une nouvelle balise dans le référentiel distant lorsque le nom local et le nom distant sont différents ; sinon, le nom de la référence fonctionnera seul.
Ou, comme mentionné dans git tip , vous pouvez configurer une "Branch's Default Remote":
Jan suggère (pour git> = 1.7.0 ) l' option
push -u
(oupush --set-upstream
):De cette façon, vous n'avez pas à faire de configuration git.
la source
-u
option pourpush
pour vous assurer que votre branche locale suit la branche distante après l'avoir rendue publique. Si vous oubliez d'utiliser l'-u
option, vous pouvez simplement tapergit push -u
ensuite dans la branche,git pull
cela fonctionnera.git push origin experimental
, il n'y a aucune preuve de téléchargement de packs. Il semble que la télécommande possède déjà tout le matériel de votre poussée précédente; il doit juste être accroché aux refs .git push origin experimental
créerait simplement la brancheexperimental
sur la télécommande.Si le nom de votre succursale est
experimental
, et le nom de la télécommande estorigin
, alors c'estla source
git push -u <remote-name> <branch-name>
ne fonctionne pas si la branche nouvellement créée n'est pas générée à partir du même dépôt, c'est-à-dire que si vous n'avez pas créé la nouvelle branche avecgit checkout -b new_branch
, alors cela ne fonctionnera pas.Par exemple, j'avais cloné deux référentiels différents localement et j'ai dû copier repo2 / branch1 dans repo1 / puis le pousser aussi.
Ce lien m'a aidé à pousser ma branche locale (clonée à partir d'un autre dépôt) vers mon dépôt distant:
la source
Voici la page github faisant autorité pour la gestion à distance de github http://github.com/guides/push-a-branch-to-github . Cela vous aidera à répondre à toutes vos questions.
la source
tl; dr
Plus d'informations
après avoir effectué quelques commits dans votre:
vous poussez votre branche en spécifiant un amont dans l'un des référentiels distants comme suit:
les télécommandes peuvent être vues par
généralement, vous aurez une seule télécommande par défaut
origin
. ainsi votre commande ressemblerait à:et toutes les poussées conséquentes peuvent être faites juste avec
git push
.la source