假设写好了本地代码,计划推送至远程分支。
-
首先,可以试图用
git push origin <remote_branch>
推送自己的修改; -
如果推送失败,表明远程分支有比本地分支更新的内容(可能是合作人员在自己上一次
git pull / git clone
之后提交了他修改后的内容),需要先用git pull
试图合并:-
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用
git push
推送。
-
命令
git pull
的含义在大多数情况下是一个git fetch <remote>
紧接着一个git merge
命令。
git fetch
命令会访问远程仓库<remote>
,从中拉取所有你还没有的数据。执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。当git fetch
命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容,它只会获取数据然后让你自己合并。如果有一个像之前章节中演示的设置好的跟踪分支,不管它是显式地设置还是通过
clone
或checkout
命令为你创建的,git pull
都会查找当前分支所跟踪的服务器与分支,从服务器上抓取数据然后尝试合并入那个远程分支。
如果 git pull
提示 no tracking information
,则说明本地分支和远程分支的追踪关系没有创建,用之前介绍的方式设置上游追踪分支即可:git branch --set-upstream-to=<remote>/<remote_branch> <local_branch>
。