忽然有一天你用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? -----強制運行