J'ai une branche 'premier projet' avec 2 commits. Je veux me débarrasser de ces commits et les faire apparaître comme un seul commet.
La commande git merge --squash
semble prometteur, mais quand j’exécute git merge --squash
mon terminal n'indique que des options pour la commande. Quelle est la commande correcte?
Commit 1:
Added 'homepage.html'
Added 'contacts.html'
Commit 2:
Added 'homepage.php'
Added 'homepage.php'
Deleted 'homepage.html'
Deleted 'contacts.html'
Tu veux git rebase -i
pour effectuer un rebase interactive .
Si vous êtes actuellement sur votre "commit 1" et que le commit que vous souhaitez fusionner, "commit 2", est le commit précédent, vous pouvez courir git rebase -i HEAD~2
et changez le premier mot de la deuxième ligne de "pick" à "squash". Ensuite, écrivez votre fichier et quittez. Git écrasera votre premier commit dans votre avant-dernier commit.
Notez que ce processus réécrit l’historique de votre branche. Si vous poussez votre code quelque part, vous devrez git Push -f
et toute personne partageant votre code devra sauter des étapes pour extraire vos modifications.
Notez que si les deux validations en question ne sont pas les deux dernières validations sur la branche, le processus sera légèrement différent.
git rebase -i HEAD~3
ou quel que soit le nombre de commits au lieu de 3.Tourner cette
pick YourCommitMessageWhatever pick YouGetThePoint pick IdkManItsACommitMessage
dans cette
pick YourCommitMessageWhatever s YouGetThePoint s IdkManItsACommitMessage
et faites une action où vous appuyez sur
esc
puisenter
pour enregistrer les modifications. [1]
Lorsque l'écran suivant apparaît, supprimez ces lignes # 2 [2] et créez un nouveau message de validation, ou quelque chose du même genre, et faites la même action escape
enter
. [1]
Wowee, vous avez moins de commits. Ou tu as tout cassé.
[1] - ou tout ce qui fonctionne avec votre configuration git. Ceci est juste une séquence qui est efficace compte tenu de ma configuration.
[2] - vous verrez des choses comme # this is your n'th commit
_ quelques fois, avec vos commits originaux juste en dessous de ces messages. Vous souhaitez supprimer ces lignes et créer un message de validation reflétant les intentions des n validations que vous combinez en 1.
git rebase -i HEAD~<quantity of your commits>
(c'est à dire. git rebase -i HEAD~5
)txt
ouvert, changez le fichier pick
en squash
pour tous les commits, à l'exception du premier, qui est en haut. Pour le premier choix, changez-le en reword
(ce qui signifie que vous allez fournir un nouveau commentaire pour ce commit à la prochaine étape) et cliquez sur SAVE! Si vous êtes dans vim, appuyez sur esc
, puis enregistrez en saisissant wq!
et appuyez sur Entrée.Terminé