Lorsque vous poussez une branche avec Magit (avec P P
) et que la branche n'a pas d'amont, Magit vous demande le nom de la branche sur laquelle vous souhaitez pousser. C'est génial.
Une fois que vous avez défini l’amont pour une branche, Magit ne vous demande plus où vous voulez le pousser. C'est généralement pratique (on ne veut pas qu'on vous le demande à chaque fois), mais cela rend difficile le transfert d'une branche vers une autre branche distante.
Existe-t-il un moyen de demander à Magit de me demander à nouveau quelle est la branche de destination, même si la branche actuelle en a déjà une en amont?
Cas d'utilisation
Il est assez courant que j'ai une branche comme celle-ci:
Local: issue-30 ~/Git-Projects/repo/
Remote: issue-30 @ origin ([email protected]:.../repo.git)
Head: ebe4054 Some commit message
et je veux changer les branches locales et distantes à issue-30-and-34
. Si je viens de renommer la branche locale, je reste avec ceci:
Local: issue-30-and-34 ~/Git-Projects/repo/
Remote: issue-30 @ origin ([email protected]:.../repo.git)
Head: ebe4054 Some commit message
Même si je supprime origin/issue-30
, faire P P
le issue-30-and-34
sera simplement recréer le origin/issue-30
.
Ce que je finis par faire est le suivant, mais on se sent plutôt détourné pour quelque chose qui peut être fait en une seule git
commande:
- Créer une nouvelle branche appelée
issue-30-and-34
(au lieu de renommer l'ancienne), - supprimer les versions locale et distante de
issue-30
, - push
issue-30-and-34
(puisqu'il n'a pas encore d'amont, Magit me demandera où pousser).
Réponses:
En commençant par,
v2.1
vous pouvez changer l’amont de la branche actuelle en une branche distante ou locale à l’aide de bu[REMOTE/]BRANCH
RET. À partir dev2.4
, si un amont est déjà défini, il busera simplement désinstallé. Appuyez à unouveau pour définir une nouvelle valeur.En commençant par
v2.4
et si l'amont n'est pas défini, vous pouvez également l'installer en poussant à l'aide de pu[REMOTE/]BRANCH
RET. On vous demandera automatiquement quelle branche utiliser en amont. Une fois l'amont défini, vous puy pousserez sans que vous ne puissiez modifier l'amont. Donc, pour changer en amont, vous devez utiliser l'approche décrite dans le paragraphe précédent.Auparavant,
v2.4
il était également possible de définir la branche distante que vous souhaitez utiliser comme branche amont p-ueREMOTE/BRANCH
RET. Mais maintenant, le--set-upstream
commutateur n'est plus disponible dans le menu contextuel push par défaut . Vous pouvez le récupérer en réglantmagit-push-current-set-remote-if-missing
sur nil. Cela a deux effets: le--set-upstream
commutateur sera à nouveau disponible après le prochain redémarrage et l'approche décrite dans le paragraphe précédent ne fonctionnera plus.Si vous souhaitez que les deux fonctionnalités décrites dans les deuxième et troisième paragraphes soient disponibles en même temps, laissez
magit-push-current-set-remote-if-missing
inchangées et ajoutez ceci à votre fichier init:la source
Appuyez sur "
P C-u C-u P
" pour que Magit vous demande quelle branche distante et distante utiliser avant d’appuyer.(Avec un seul argument de préfixe ("
P C-u P
"), Magit demande quelle télécommande utiliser.)J'ai trouvé cela en pressant
P C-h k P
dans un tampon d'état Magit, en lisant les documents demagit-push
etmagit-push-dwim
(ces documents semblent être obsolètes, BTW), et en expérimentant.PS: J'utilise Magit
magit-1.2.0-2049-ge6839e8
.la source
Il semble que cela se trouve maintenant dans la section branch / configure:
b
C
p
définir la pushRemotela source
En novembre 2016 et au plus tard
magit
, voici une solution partielle:P
e
- vous permet de pousserelsewhere
, mais on ne s'en souvient pasJe ne pouvais pas trouver un moyen pour magit de le faire
--set-upstream
, donc je l'ai juste fait depuis le terminal, une sorte de triche mais ça m'a permis de résoudre ce problème:git push --set-upstream origin <branch-name>
Et maintenant, le nouveau amont est enregistré, et je peux construire ma prochaine chose :)
la source
--set-upstream
" - Peut-être devriez-vous essayer de lire la réponse demagit
a un peu changé depuis et j'espère que ma solution permettra à quelqu'un de gagner quelques minutes supplémentaires