Est-il possible de faire git svn dcommit résultat en un seul svn commit?
Selon le manuel, git dcommit
“va créer une révision SVN pour chaque commit dans git”. Mais est-il un moyen d'éviter de multiples Subversion des révisions? C'est, d'avoir git merge toutes les modifications avant de procéder à la svn commit
?
- J'ai le même problème. Imaginez que vous clonez un repo svn à git comme votre maître, vous faites 3 s'engage avec différents messages et utiliser git svn dcommit. Est-il possible de "fusionner" ce 3 s'engage dans un seul ? Comment pouvez-vous le faire ? Pouvez-vous nous donner un exemple ? Thnks!
- Double Possible de Combiner Git local s'engage dans un commit git-svn
Vous devez vous connecter pour publier un commentaire.
Si vous travaillez sur une branche git, vous pouvez
git-fusion --squash
, qui n'est que dans git. Vous pouvez ensuite pousser un écrasé de s'engager à SVN.Bien sûr, beaucoup de petits commits sont bons, alors pourquoi voudriez-vous l'écraser?
git-svn-id
s? Dois-je les supprimer à partir de la résultante s'engager dans son message, afin de ne pas confondre git-svn?La commande
git rebase -i
pouvez faire cela, et plus encore. Cette commande est extrêmement puissant, il est donc bon de se faire des amis avec elle.La syntaxe est la suivante:
git rebase -i <commit ID>
. Cela apporte votre éditeur de texte, avec des options (instructions) pour la modification de tous les commits jusqu'à (ne comprenant pas) l'ID donné.Par exemple, pour modifier le cours des 5 s'engage, vous pouvez le faire:
git rebase -i HEAD~5
Ou si votre branche SVN est appelé "svn/trunk", cette syntaxe est bon aussi:
git rebase -i svn/trunk
Puis un éditeur de texte de la fenêtre pop up. Pour l'écraser de tout, de modifier le premier mot de chaque ligne après la première de "ramasser" pour "squash" (Si cela vous semble confus, il aura plus de sens quand vous le verrez). Puis enregistrez et fermez l'éditeur. Vous aurez alors une chance de modifier le message de commit pour l'écrasé de commettre.
Parmi les autres choses que vous pouvez faire avec
git rebase -i
, sont réorganisation s'engage, à l'écraser s'engage dans différentes manières, et la suppression s'engage.- Je utiliser cette commande en permanence; c'est une killer feature de Git.
Ryan Tomayko écrit un peu sur
git rebase -i
, dont il dit:J'ai une tendance à commettre des souvent dans git, mais ne veulent pas nécessairement dcommit chaque commit svn, et en écrasant tout mon travail est fait tout aussi peu de sens. J'essaie maintenant de les réorganiser et de squash quelques-uns en plus logique de commettre des unités de maintenant.