-
Notifications
You must be signed in to change notification settings - Fork 630
Git(三)
sqmax edited this page Jun 26, 2018
·
7 revisions
多人合作开发,当我在commit之前没有pull获取服务器的最新代码,那么我commit之后再push,就会有冲突,push不了,并且提示先pull,然而pull也会有一些错误提示,不能进行fase-merge,这时的解决办法是:
- 首先,把修改的代码在本地备份一份。
- 进行下面的操作
git pull
git reset --hard origin/master
git pull
这样就会把服务器的最新代码获取了下来。
3. 再把本地备份的代码复制进去。
这时再进行commit,push操作就行了。
以上是我最近在开发工作中实际遇到的一些问题。其实,每次提交之前最好pull一下获取最新代码,然后再commit,push。
分析一下上面步骤二:
首先我们需要明白origin/master,它是和远程仓库关联的分支,当使用git pull,它首先会拉取服务器上的版本到该分支上,然后合并到你现在工作的分支,这时因为有合并冲突,就会终止。然后我们使用git reset --hard origin/master,它就会使用orign/master分支的代码覆盖工作区,也就是服务器上的版本。因为我们刚才提交的代码没有成功push到服务器,所以我们需要将刚才备份的代码在拷贝进去。再次commit,push。
关于origin/master分支。 当我使用
git branch -al查看不到origin/master分支,但是我是用git checkout origin/master可以切换到origin/master分支,而且这时使用git branch -al就可以查看到origin/master分支,所以我猜想这时一个和远程关联的隐藏的分支。
目录