No commit
( 拉取代码时不提交本地代码)
Squash commit
( 提交代码时,需要删除之前的远程分支;使用git squash将多个commit信息合并成一个,并再次提交到远程分支,合并到master上.)
使用git squash目的:如果其他同事提交代码到master(develop),你rebase远程master时可能会遇到冲突,使用squash可以使解决冲突“简单化”;频繁commit导致多个无意义提交信息,容易引起他人理解git分支树困惑,使用squash让提交信息准确明了。
缺点:将多次commit信息合并成一个,提交信息的减少导致理解困难,版本回滚会造成麻烦。
No fast forward
( 使得每一次的合并都创建一个新的commit记录 )
Fast-forward 进行合并
c.txt | 1 +
d.txt | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 c.txt
create mode 100644 d.txt
可以看出这是一次fast-forward式的合并,且合并完之后的视图为扁平状,看不出develop分支开发的任何信息。
no-fast forward进行合并
—no-ff (no fast foward),使得每一次的合并都创建一个新的commit记录。即使这个commit只是fast-foward,用来避免丢失信息。
(master)$ git merge –no-ff develop
Merge made by recursive.
c.txt | 2 +-
d.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
网友评论