2Fermer4
ZephLe 10/02/2018 à 12:49
[edit] Gros cross smile

Pour la question 1, tu as plusieurs options :

Si tu veux conserver le travail que tu as fait à la maison, tu peux le commit dans une autre branche pour le retrouver plus tard et enlever ces changements de ton espace de travail :
git checkout -b nouvellebranche # Crée une nouvelle branche "nouvellebranche" et te place dessus git commit -am 'Ma sauvegarde' # Commit sur la branche actuelle ("nouvellebranche") git checkout master # Revient sur la branche initiale, en supposant qu'elle s'appelait "master" git pull origin master # Récupère tes changements distants, en supposant que le remote s'appelle "origine" et la branche "master"Avec TortoiseGit ça veut dire "Clic droit", "Git Switch / Checkout", cocher l'option "Create New Branch" et lui donner un nom. Ensuite faire le commit, puis revenir à la branche initiale avec le même menu.

Si tu veux le conserver mais seulement temporairement et que tu ne veux pas créer de branche tu peux utiliser la commande "stash" : au lieu d'être conservés dans une branche tes changements vont être sauvegardés dans une pile (le "stash"), tu pourras ensuite les récupérer depuis cette pile. Par défaut tu les récupères dans l'ordre inverse de l'ordre dans lequel tu les y a mis (= tu récupèreras en premier le dernier changement que tu avais stashé).
git stash # Empile les changements en cours dans le stash git pull origin master # Récupère tes changements distants git stash pop # Dépile les changements que tu avais mis de côté et essaie de les ré-appliquer sur la nouvelle version du codeAvec TortoiseGit tu as les options "Stash Save" et "Stash Restore" dans le menu (pas sûr du nom pour la deuxième, je te laisse vérifier).

Si tu veux perdre les changements que tu avais fait à la maison, tu peux utiliser la commande "reset" pour les effacer. Attention : c'est l'une des rares commandes de Git qui ne te permet aucun retour en arrière, donc il faut que tu sois sûr de toi :
git reset --hard HEAD # Annule les changements en cours et revient à l'état du dernier commit sur lequel tu étais (attention : définitif) git pull origin master # Récupère tes changements distantsAvec TortoiseGit l'option est ici : https://tortoisegit.org/docs/tortoisegit/tgit-dug-reset.html

Pour la question 2 je ne suis pas sûr d'avoir compris ce que tu veux dire, tu es certain d'avoir vu écrit "merge de branche" ? J'aurais plutôt tendance à penser qu'il s'agit d'un commit de merge (c'est à dire un commit qui a deux parents au lieu d'un seul). Si tu veux interdire à Git de créer un commit de merge automatiquement, tu peux lui demander de faire un "fast-forward" (c'est à dire mettre à jour ta branche actuelle à condition qu'il soit possible de le faire sans créer de commit de merge). S'il n'y arrive pas, il échouera au lieu de créer silencieusement le merge ; à toi alors de te remettre dans un état qui lui permettra de faire le fast-forward (soit avec l'une des options listées ci-dessus, soit via un rebase ; cf. Google pour cette dernière solution).