git 冲突解决

在git的使用过程中难免会碰到一些冲突,那么该怎么解决呢?
冲突会出现在什么地方呢?git pull 的时候,提示有冲突文件

error: Your local changes to the following files would be overwritten by merge:
        protected/config/main.php
Please, commit your changes or stash them before you can merge.

这个时候该怎么办呢?
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:

git stash
git pull
git stash pop

然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
修改完成之后,再提交到远端。

git stash有什么作用呢
git stash 可以将本地的改动存储到栈中,使本地的版本和git远端的相同,不影响git pull的操作,然后使用git stash pop将栈中的文件和pull下来的进行合并,之后再进行将冲突的文件进行修改就ok了。

当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,

git stash list

命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

git stash          # save uncommitted changes
# pull, edit, etc.
git stash list     # list stashed changes in this git
git show stash@{0} # see the last stash 
git stash pop      # apply last stash and remove it from the list

git stash --help   # for more info

git stash popgit stash apply 的区别。

git stash pop stash@{id}命令会在执行后将对应的stash id 从stash list里删除,
git stash apply stash@{id} 命令则会继续保存stash id。
不同的时候用途可能会不一样,所以都需要学习一下

删除stash。
git stash drop 如果不加stash编号,默认的就是删除最新的,也就是编号为0的那个,加编号就是删除指定编号的stash。
git stash clear 是清除所有stash

你可能感兴趣的:(git)