忽然有一天你用git提交文件的时候发现提交的结果是错误的,而且提示:Please, commit your changes or stash them before you can merge.
这就是本地文件和仓库中的文件冲突了,不要着急,看小姐姐怎么解决的
1.如果是这个文件你备份好了,或者是在没有用了,你直接就执行这个命令
git reset-----这种方法会丢弃本地修改的代码,而且不可找回
2.如果你还想要这个文件,那就请用下面的这个命令
1)直接commit本地的修改----也一般不用这种方法
2)通过git stash---- 通常用这种方法
git stash
git pull
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的哪些节点都消失了。
3.恢复某个已修改的文件(撤销未提交的修改):
git checkout------撤销所有的文件
示例:git checkout file-name
比如修改的都是python文件,不必一个个撤销,可以使用
$ git checkout *.py
4.撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
git revert
* git revert HEAD 撤销前一次 commit
* git revert HEAD^ 撤销前前一次 commit
* git revert commit-id (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容
5.Please move or remove them before you can merge.
git clean -d -fx
其中
x -----删除忽略文件已经对git来说不识别的文件
d -----删除未被添加到git的路径中的文件
f -----强制运行