512 votes

git fusion sans auto commit

Est-il possible de faire un "git merge", mais sans commettre?

"man git merge" dit ceci:

 With --no-commit perform the merge but pretend the merge failed and do not autocommit,
to give the user a chance to inspect and further tweak the merge result before
committing.
 

Mais quand j'essaie d'utiliser git merge avec le --no-commit, il commet toujours automatiquement. Voici ce que j'ai fait:

 $> ~/git/testrepo$ git checkout master
Switched to branch 'master'

$> ~/git/testrepo$ git branch
* master
  v1.0

$> ~/git/testrepo$ git merge --no-commit v1.0
Updating c0c9fd2..18fa02c
Fast-forward
 file1 |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

$> ~/git/testrepo$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
 

Un "git log" ultérieur révèle tous les commits de la branche v1.0 fusionnée dans master.

775voto

manojlds Points 96599

Notez le résultat lors de la fusion - il est dit Fast Forward

Dans de telles situations, vous voulez faire:

 git merge v1.0 --no-commit --no-ff
 

63voto

Samus_ Points 1011

vous comprenez mal la signification de la fusion ici, le --no-commit empêche le MERGE COMMIT de se produire, et cela ne se produit que lorsque vous fusionnez deux historiques de branche divergents; dans votre exemple, ce n'est pas le cas puisque git indique qu'il s'agissait d'une fusion "fast-forward" et que git n'applique que les commits déjà présents sur la branche de manière séquentielle.

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