52 votes

Comment créer un patch sans commit dans Git

J'ai fait quelques recherches en ligne. Je sais que vous pouvez utiliser format-patch après commit, mais ma situation est un peu différente.

Je souhaite créer un correctif, similaire à "dpk" dans SVN, afin que je puisse l'envoyer pour révision de code, mais je ne veux pas encore le valider.

Comment puis-je y parvenir avec Git ?

145voto

Iceberg Points 919

Lorsque d'autres gars ont déjà donné des réponses conformes à la convention git, la question de l'OP, "créer un correctif sans commit", peut également être résolue de cette manière :

 git diff > my_patch.txt

Plus tard, vous pouvez appliquer ce correctif, également sans commit, en :

 git apply my_patch.txt

Mais si vous ne travaillez que localement, un git checkout another_branch -m est suffisant pour apporter toutes vos modifications non validées actuelles à cette other_branch, sans même patcher et appliquer.

12voto

Pintu Patel Points 113

étape générale pour générer enfin un correctif sans commit

  1. valider vos modifications locales en utilisant

     git commit -a -m "specific message"
    

    Remarque : ne poussez pas ce commit.

  2. générer un correctif

     git format-patch -s -n -1 HEAD   
    

    il générera 0001-.patch

  3. revenir en arrière sur le commit local

     git reset --soft HEAD~1
    

    supprimer commit mais gardez votre travail

     git reset --hard HEAD~1
    

    pour supprimer commit avec votre travail

7voto

manojlds Points 96599

Comme @hammar l'a dit, le commit est bon marché et vous pouvez ensuite le faire sauter avec git reset etc.

Vous pouvez également ranger puis faire :

 git stash show -p

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X