使用git 工具在进行协同开发的时候,有时候会出现这样的问题,当我们需要将本地仓库提交到远程仓库的时候,发现已经有另外一个同学将自己的代码提交远程仓库。这是进行提交就会出现下图所示的界面。
使用git fetch 命令查看 看到远端有一个提交。 git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地 我们看到远程仓库有一个更新,(分支是用来标记特定代码的提交(每次提交会产生一个值可以通过git log 进行查看本地的commit 记录),每一个分支通过SHA1sum值来标识,所以对分支的操作是轻量级的,你改变的仅仅是SHA1sum值。) 注意git fetch 只是拉取远程仓库的分支,合并权还在自己。
如果决定合并使用 git merge FETCH_HEAD
可以看到产生冲突,我们可以使用git diff 查看具体的冲突。(如果不解决冲突git push 也不会成功) 这时候我们需要打开相应的文件,解决掉冲突(这里的解决冲突是我们希望文件所变成的样子,进过考虑可以保留别人的更改,也可以不保留别人的更改),然后git add ,commit 提交解决冲突的文件。
这时候我们再使用 git push origin master 命令发现成功推送到远程仓库。
解释:
git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支中 git pull 命令就是 git fetch 和git merge 的结合,注意git merge 操作并不解决冲突,冲突需要打开相应的文件进行手动操作。解决冲突后需要重新 git add -u (-u 参数表示只提交修改的到暂存区),git commit 进行重新提交。
|