• [^] # Re: git != svn

    Posté par . En réponse au journal Git : les bases et guide d'utilisation en mode centralisé (à la SVN). Évalué à 1. Dernière modification le 26 novembre 2016 à 00:55.

    Je viens de faire le test.

    En résumé, ça modifie la référence du dossier de travail (HEAD), mais ça ne modifie pas les fichiers physiques.

    Il faut savoir que HEAD peut pointer vers un commit précis (git status nous indique qu'on est dans l'état "HEAD détachée"), ou pointer vers une branche, qui elle-même pointe vers un commit (le fonctionnement normal).
    Une opération push va modifier la branche, et si HEAD suit la branche, HEAD sera indirectement impactée. Mais les fichiers locaux ne vont pas changer.

    En pratique, si coté client on ajoute un fichier F dans un commit C, du coté serveur, git status va nous dire qu'on est bien sur le commit C, mais que le fichier F a été supprimé.

    Avant le push (sur le serveur):

    Sur la branche master
    Modifications qui seront validées :
     (utilisez "git reset HEAD <fichier>..." pour désindexer)
     nouveau fichier : fichier1-coté-serveur
    Fichiers non suivis:
     (utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
     fichier2-coté-serveur
    

    Après le push:

    Sur la branche master
    Modifications qui seront validées :
     (utilisez "git reset HEAD <fichier>..." pour désindexer)
     supprimé : fichier-commité-coté-client
     nouveau fichier : fichier1-coté-serveur
    Fichiers non suivis:
     (utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
     fichier2-coté-serveur
    

    Le risque, c'est que si on a des fichiers modifiés et que quelqu'un push sur notre dépôt, ça va tout mélanger et il va falloir faire du tri à la main, donc potentiellement grosse galère pour s'y retrouver.

    Pour les autres opérations de pull et clone, ça ne devrait pas avoir d'impact.