Refaire l'histoire avec git

Utilisation avancée de git et sa commande rebase pour modifier son historique

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous,

J'ai commencé (il y a 3 semaines, 1 jour) la rédaction d'un tutoriel dont l'intitulé est Refaire l'histoire avec git.

J'aimerai obtenir un maximum de retour sur celui-ci, sur le fond ainsi que sur la forme, afin de proposer en validation un texte de qualité.

Si vous êtes intéressé, cliquez ci-dessous

Merci d'avance pour votre aide

+3 -0

J'ai un peu lu en diagonale, je l'avoue. ^^ Mais le sujet est fort intéressant et me sera très probablement utile !

Cependant, petit remarque, le dernier lien que tu donnes dans la conclusion est en anglais.. alors qu'il existe une version française : http://git-scm.com/book/fr/v1/Utilitaires-Git-R%C3%A9%C3%A9crire-l-historique . Ne serait-il pas mieux de mettre celui-ci ?

Du coup, en bon programmeur, il décide de les rédiger en markdown

Nah, un programmeur aurait pris LaTeX :-°

Fais attention à ton ortho, il y a des fautes à divers endroits. Exemple pour l'intro :

1
2
3
4
5
comme git on vu -> comme git ont vu
et donc tout les changements -> et donc tous les changements
sont bien atomique -> sont bien atomiques
que l'on ai besoin -> que l'on ait besoin 
toucher a l'historique -> toucher à l'historique 
+0 -0

Situphen travaille aussi sur un truc sur git (mais je sais plus précisément quoi, le modèle des branches je crois). Perso je veux bien faire des tutos sur des petits points (comme ici le rebase) mais sur git en général ca me botte moins (et pas le temps de faire du gros oeuvre. Par contre si il y a des gens motivés je peux faire office de "mentor rédactionnel" sur le sujet :D

+0 -0

Juste une question philosophique : c'est pas un peu dangereux d'apprendre rebase -i à un débutant ? Y'a moyen de faire pas mal de caca avec. Surtout que les rebases sont utilisés plus couramment avec git pull --rebase pour linéariser un fork. ;)

C'est important également de préciser qu'il est impossible (enfin… qu'il faut considérer que c'est impossible) de récrire l'histoire d'un dépôt "remote", potentiellement partagé : ce genre de choses ne devrait se faire qu'entre le HEAD local et origin/HEAD (pro-tip: git log --oneline --decorate), avant de pousser les modifications.

+1 -0

Dans la liste des possibilités, tu peux aussi editer / modifier un commit (git rebase + git reset HEAD^ + cassage du commit), en fusionner… Et bonus ++ pour gérer les merdes qu'on peut introduire, jouer avec la commande reflog. :)

Sinon l'ensemble a la gueule d'une bonne introduction à la manipulation de l'historique de git :)

+0 -0

Je trouve qu'il serait intéressant d'indiquer l'intérêt des options que tu précises par exemple avec la commande git log, ça évite une recherche dans la doc. De la même manière tu as une balise attention où tu précises de ne pas oublier le ^ derrière le hash du commit. Peut-être ça serait intéressant que tu dises en une phrase à quoi sert ce ^.

+0 -0

Pour git log, ca fait parti de ce que je met comme pre-requis "opération de base" dans l'intro. Je pars du principe que le lecteur a deja des bases en git.

Pour le ^ il me semblait l'avoir fait, je vais le faire tu as raison

Eskimon

Tout dépend de ce que tu appelles les prérequis. Par exemple la partie sur merge je la connaissais, à l'inverse j'ai l'habitude d'aller sur github au lieu de faire un git log.

Concernant le ^ ; je sais que je suis chiant, mais ça devrait faire partie des pré-requis (ce n'est nullement en relation avec la manipulation de l'historique… L'historique, peut-être, mais pas sa manipulation)

Sinon, peut-être aussi préciser que ce n'est qu'une intro à la manipulation, car comme je l'ai indiqué, y'a pas mal de petits trucs à savoir si on veut pousser le bouchon un peu plus loin :)

D'ailleurs, toujours en guise d'intro, la manipulation ne se fait pas qu'a l'aide de git rebase ; on peut aussi citer git reset, qui permet de revenir à un point de l'historique (que ce soit un commit, ou une action git, action liée au (fameux !) git reflog)

+0 -0
Ce sujet est verrouillé.