Lynn Lin <lynn.xin.lin@xxxxxxxxx> writes: > Hi All, > When I merge branch A back to master branch,if there are same > commit(developer do double commit) both in master and A branch, there > will be two same commit in master branch. They cannot be the "same" commit. They are different commits (i.e. different sha1 identifier, and probably different trees), even though they may have the same commit message and represent the same diff. > 1->2->3-4>5 Master > | > 4->6->7 A A more accurate drawing would be 1->2->3-4>5 Master | 4'->6->7 A and after merging, you'd get 1->2->3-4>5-->8 A, master | / 4'->6->7 with 8 having both 4 and 4' as ancestors. There's nothing wrong with it. Git cannot remove either 4 or 4' without rewritting history, and "git merge" does not rewrite history. If you really really want to avoid this duplication in the history, then learn about rebase (which is both powerfull and dangerous, you've been warned). -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html