Merci à MvanGeest pour la mise en place d'un lien vers les notes de version de git 1.8.3 . Ces notes de mise à jour indiquent :
- Un flux de travail triangulaire "tirer d'un endroit, pousser à un autre". est mieux pris en charge par les nouvelles technologies de l'information et de la communication (TIC).
remote.pushdefault
(remplace l'option "origine") et branch.*.pushremote
(remplace l'option branch.*.remote
).
J'utilise un flux de travail triangulaire de ce type tout le temps pour les contributions à source ouverte. Par exemple : J'ai ma propre version GitHub de llvm/llvm-project
et je veux garder la mienne main
à jour avec la branche main
. J'ai donc fréquemment git pull upstream main
; il serait pratique de pouvoir simplement taper git pull
au lieu de cela. Mais.., Je ne veux pas risquer de faire un gros doigt d'honneur git push<return>
au lieu de git push origin main<return>
et accidentellement pousser vers le repo du projet en amont avant d'en avoir l'intention ! Ainsi, avant aujourd'hui, mon .git/config
ressemblait à ceci :
[remote "origin"]
url = git@github.com:Quuxplusone/llvm-project
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "upstream"]
url = git@github.com:llvm/llvm-project
fetch = +refs/heads/*:refs/remotes/upstream/*
[branch "main"]
merge = refs/heads/main
remote = origin
En me basant sur la note de version citée ci-dessus, je viens de modifier le fichier .git/config
à cela :
[remote "origin"]
url = git@github.com:Quuxplusone/llvm-project
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "upstream"]
url = git@github.com:llvm/llvm-project
fetch = +refs/heads/*:refs/remotes/upstream/*
[branch "main"]
merge = refs/heads/main
remote = upstream
pushremote = origin
Je peux maintenant faire un simple git checkout main ; git pull
pour tirer de l'amont/principal, et un simple git checkout main ; git push
pour pousser vers origin/main. C'est le "flux de travail triangulaire" que je souhaite.