GIT提交的常见报错解决方法

GIT提交的常见报错解决方法

  • 问题1:commit your changes or stash them before you can merge
  • 问题2:Updates were rejected because the tip of your current branch is behind

问题1:commit your changes or stash them before you can merge

出现这个问题的原因是其他人修改了xxx文件并提交到版本库中去了,而你本地也修改了xxx文件,这时候你进行git pull操作就好出现冲突了,解决方法,在上面的提示中也说的很明确了。

1、保留本地的修改 的改法
通过git stash ---- 通常用这种方法

步骤1:git stash
步骤2:git pull
步骤3:git stash pop

通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。

git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。

git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。

git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。

git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

2、放弃本地修改 的改法 ----这种方法会丢弃本地修改的代码,而且不可找回,提前做好备份
在不确定的情况下,先备份好本地写好的代码,然后再放弃本地修改,从服务器上拉一份下来:

git reset --hard
git pull

然后再把要修改掉的文件 直接覆盖掉,然后再进行正常提交操作:

git add .
git commit -m "xxx"
git push origin master


问题2:Updates were rejected because the tip of your current branch is behind

1、push前先将远程repository修改pull下来

git pull origin master
git push -u origin master

2、若不想merge远程和本地修改,

可以先创建新的分支:git branch [name]
然后:pushgit push -u origin [name]

你可能感兴趣的:(GIT)