协作开发多拉取(pull),以更新项目。

提交(commit)是只提交本地仓库,提交远程仓库需要进行推送(push);

推送前尽量先pull。

多人协作开发项目,在上传代码时通常会先pull一下远程代码,使本地与远程同步更新,但是如果此时远程与自己代码存在冲突,在解决冲突后提交有时会出现“Merge branch ‘master’ of …”这条信息。这是因为pull其本质是fetch+Merge的结合。通常会分为以下两种情况:

1.如果远程分支超前于本地分支,并且本地也没有commit操作,此时pull会采用’fast-forward’模式,该模式不会产生合并节点,也即不产生"Merge branch ‘master’ of …"信息。

2.如果本地有commit提交,此时若存在冲突,pull拉取代码时远程和本地会出现分叉,会进行分支合并,就会产生"Merge branch ‘master’ of …"信息。

解决方法:使用git pull --rebase命令,如果没有冲突,则会直接合并,如果存在冲突,手动解决冲突即可,不会再产生那条多余的信息。如果你不想每次都rebase,可以在git bash里执行,这个配置就是告诉git在每次pull前先进行rebase操作。


git config --global pull.rebase true

最好的步骤是:本地干完活,先 pull ,然后有冲突解决冲突,没冲突就commit ,然后 push