Détails
Comment pousser une nouvelle branche locale vers un dépôt Git distant et en assurer le suivi ?
Je veux être en mesure de faire ce qui suit :
-
Créer une branche locale basée sur une autre branche (distante ou locale) (via
git branch
ougit checkout -b
) -
Pousser la branche locale vers le référentiel distant (publish), mais rendez-la mais rendez-la traçable pour que
git pull
etgit push
fonctionnent immédiatement.
Comment puis-je faire cela ?
Je connais le --set-upstream
de Git 1.7, mais c'est une action post-création. Je veux trouver un moyen d'effectuer un changement similaire lors de la poussée de la branche vers le dépôt distant.
4141
3
Avant l'introduction de
git push -u
, il n'y avait pas d'optiongit push
pour obtenir ce que vous désirez. Vous deviez ajouter de nouvelles déclarations de configuration.Si vous créez une nouvelle branche en utilisant :
Vous pouvez utiliser la commande
git config
pour éviter de modifier directement le fichier.git/config
.Ou vous pouvez éditer manuellement le fichier
.git/config
pour avoir des informations de suivi sur cette branche.Je suppose que vous avez déjà cloné un projet comme :
Ensuite, dans votre copie locale, créez une nouvelle branche et vérifiez-la :
Supposons que vous ayez fait un "git bare --init" ; sur votre serveur et créé le myapp.git, vous devriez :
Après cela, les utilisateurs devraient être en mesure de
**REMARQUE : Je suppose que votre serveur est opérationnel. Si ce n'est pas le cas, cela ne fonctionnera pas. Vous trouverez un bon mode d'emploi [ici][1].
ADDED
Ajouter une branche distante :
Vérifier si tout est bon (récupérer l'origine et lister les branches distantes) :
Créer une branche locale et suivre la branche distante :
Mettez tout à jour :
[1] : http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository
edit Dépassé, utilisez simplement
git push -u origin $BRANCHNAME
.Utilisez
git publish-branch
depuis William's miscellaneous Git tools (gitorious repo et clone).OK, pas de Ruby, donc - en ignorant les protections ! - prenez les trois dernières lignes du script et créez un script bash,
git-publish-branch
:Ensuite, exécutez
git-publish-branch REMOTENAME BRANCHNAME
, où REMOTENAME est habituellement origin (vous pouvez modifier le script pour prendre origin par défaut, etc...)