1、合并冲突
远程仓库test下有三个分支dev、master、test。在dev下修改了README.md文件,然后主分支执行git merge dev合并dev分支,然后推送到远程仓库。
文件结构
2.这时再切换到test分支上,同样修改README.md的同一行,执行合并主分支git merge master,就会出现错误提示,提示说自动合并出现了冲突

然后输入git status查看文件状态,可以看到右上角的蓝字出现了MERGING状态

查看both modified:README.md文件

等号下面的就是master与test分支在README.md冲突部分,选取想要留下的修改解决冲突

重新add commit push提交成功

2、远端修改本地无法提交
在远端修改了a.md文件
在本地目录中添加了新的b.md文件,提交报错,远程仓库包括了一些东西你本地没有,你需要在你提交前git pull

3.执行了git pull 自动进入vim编辑器解决冲突,按i进入编辑模式:wq保存退出

4.重新push 提交成功,列表中多了b.md

3、本地滚回,远程仓库版本高于本地无法提交问题
当前README.md内容

本地滚回,但远程仓库代码并没有滚回,还是“第二次branch修改”


这时本地push报错,意思大概是当前分支所在的位置低于你远程仓库的版本

可以git push origin test -f 强制推送,这样可以强制推到远程仓库,但这样以前的版本记录都没了,所以十分不推荐这么做。
这时候可以revert,它会认为你回滚的东西是一次新的修改提交,这样滚回会有冲突解决冲突的办法和merge一样,然后push直接提交就好了。

4、origin问题
每次提交都去输入git push origin master ,origin是远程仓库的名字是可以自定义的,master代表分支名。


5、pull的问题
当存在许多分支时,直接git pull会出错,意思是需要指定分支
指定从master分支上pull,这样就从master分支上同步到了b1分支,记得每次写代码的时候先pull一下。

4.Git master branch has no upstream branch的解决
在push代码时,出现“git master branch has no upstream branch”问题的原因是没有将本地的分支与远程仓库的分支进行关联。如下图所示:
具体原因:出现这种情况主要是由于远程仓库太多,且分支较多。在默认情况下,git push
时一般会上传到origin
下的master
分支上,然而当repository和branch过多,而又没有设置关联时,git就会产生疑问,因为它无法判断你的push目标。
解决办法其实就是确定这两个值,方法有两种:
第一种如上图中的提示:
git push --set-upstream origin master
。其中的origin
是你在clone
远程代码时,git为你创建的指向这个远程代码库的标签,它指向repository。为了能清楚了解你要指向的repository,可以用命令git remote -v
进行查看。master
是你远程的branch,可以用git branch -a
查看所有分支,远程分支是红色的部分。然后确定好这两个值后,将命令中标粗的参数换掉即可。另一种方法是:
git push -u origin master
。同样根据自己的需要,替换origin和master。
两个命令的区别是第一条命令是要保证你的远程分支存在,如果不存在,也就无法进行关联。而第二条指令即使远程没有你要关联的分支,它也会自动创建一个出来,以实现关联。
我的列子: