Disons que j'ai une branche de sujet privée appelée develop avec 2 commits avant master.
Qu'est-ce que git pull Origin master
faire?
Tout tirer du maître distant dans le développement local et le fusionner? Tirez tout dans la branche principale locale et fusionnez-le?
Et existe-t-il un moyen de mettre à jour le maître depuis le développement sans git checkout master
première?
git pull Origin master
tire la branche principale de la télécommande appelée Origin dans votre branche actuelle. Cela n'affecte que votre branche actuelle, pas votre branche principale locale.
Cela vous donnera une histoire ressemblant à ceci:
- x - x - x - x (develop)
\ /
x - x - x (Origin/master)
Votre branche maîtresse locale n'est pas pertinente à cet égard. git pull
est essentiellement une combinaison de git fetch
et git merge
; il récupère la branche distante puis la fusionne dans votre branche actuelle. C'est une fusion comme les autres; ça ne fait rien de magique.
Si vous souhaitez mettre à jour votre branche principale locale, vous n'avez pas d'autre choix que de le vérifier. Il est impossible de fusionner dans une branche qui n'est pas extraite, car Git a besoin d'un arbre de travail pour effectuer la fusion. (En particulier, il est absolument nécessaire pour signaler les conflits de fusion et vous permettre de les résoudre.)
Si vous savez que tirer dans master serait une avance rapide (c'est-à-dire que vous n'avez pas de commits dans votre branche master locale qui ne sont pas dans le master d'origine), vous pouvez contourner, comme décrit dans cette réponse =.
Une fois que vous vous êtes engagé, vous modifiez votre branche en utilisant
git add -A
git commit -m <message>
Vous pouvez alors faire:
git pull Origin master
dans votre branche et cela gardera vos commits au-dessus du pull principal. Votre branche sera désormais à égalité avec master + vos commits au top. Vous pouvez donc désormais:
git Push
et git poussera vos modifications, ainsi que le maître s'engage dans votre branche. Vous pouvez facilement fusionner cela en master sur Github.