哪一个应该使用隐藏microcommits?
是唯一的区别git merge --squash
和git merge --no-ff --no-commit
的其他家长的拒绝?
哪一个应该使用隐藏microcommits?
是唯一的区别git merge --squash
和git merge --no-ff --no-commit
的其他家长的拒绝?
这些选项存在不同的用途。 你的资料库不同的结束。
让我们假设你的资料库是这样你做了专题分支发展后:
--squash
如果您签主,然后git merge --squash topic; git commit -m topic
git merge --squash topic; git commit -m topic
,你会得到这样的:
--no-ff --no-commit
相反,如果你git merge --no-ff --no-commit; git commit -m topic
git merge --no-ff --no-commit; git commit -m topic
,你会得到这样的:
如果你真的想隐藏(我的意思是,从你的资料库中删除 )你的微提交,使用--squash
。 因为,你可以在上面看到的图像,你是不是真的躲在你的微提交,如果你不壁球。 此外,你通常不会把你的话题转移到了世界。 主题分支是该课题获得成熟。
如果你希望你的历史,把所有的微提交,但让他们在发展另一条线(绿线在上面的图片),请使用--no-ff --no-commit
。 但请记住,一个),这是不是一个分支,和b)并不真正意味着什么Git的,因为它是你的承诺只是一个父。
请参考的Git分支-什么一个分支 ,如果你真的想了解。