web-dev-qa-db-fra.com

Git pull Origin <branch> écrase le maître?

J'ai un dépôt sur Github, aav1

Sur mon ordinateur portable, j'ai deux branches, l'une appelée master et l'autre appelée vs12up La branche principale était lorsque le logiciel était Visual Studio 2008, vs12up est converti en Visual Studio 2012.

Sur mon ordinateur portable, tout semble aller bien et j'ai poussé la nouvelle branche vers github, semble correct.

Sur mon bureau, j'ai essayé de tirer la branche distante:

git pull Origin vs12up

Il a écrit les modifications apportées à ma branche principale sur le bureau, git log affiche les validations effectuées sur la branche vs12up, mais la branche git affiche uniquement master , qui est la branche actuelle.

Comment puis-je annuler les modifications apportées à la branche master et tirer la branche vs12up sur mon bureau pour correspondre au référentiel sur mon ordinateur portable?

14
Jeff

Si vous faites un git pull Avec un nom de branche distante, il récupérera la branche distante puis la fusionnera dans votre branche locale actuelle. Donc, pour annuler cela, vous devrez d'abord réinitialiser votre branche locale sur la distante master, puis créer une nouvelle branche locale vs12up À partir de la branche distante correspondante.

  1. Réinitialisez votre master local pour qu'il corresponde au master du référentiel distant (AVERTISSEMENT: assurez-vous de ne conserver aucune modification non validée avant d'émettre la commande suivante):

    git reset --hard Origin/master
    
  2. Récupérez toutes les branches distantes dans votre référentiel local:

    git fetch Origin
    
  3. Créez une nouvelle branche locale vsup12 À partir de la branche distante vsup12 Et basculez vers cette nouvelle branche locale:

    git checkout -b vsup12 Origin/vsup12
    

Notez que lorsque vous effectuez ensuite simplement un git pull Lorsque vous passez à la branche vsup12, Vous récupérez et fusionnez les dernières modifications de la branche vsup12 Sur Github dans votre vsup12

35
earl