git在切代码分⽀时经常碰到这样的问题:error: Your local changes to the following files would be overwritten by merge有时本地并没有需要保存的修改,所以可以通过以下⽅式把本地⽂件强制覆盖掉。> git fetch --all
> git reset --hard origin/master> git pull
1、git fetch 相当于是从远程获取最新到本地,不会⾃动merge,如下指令:
git fetch orgin master //将远程仓库的master分⽀下载到本地当前branch中
git log -p master ..origin/master //⽐较本地的master分⽀和origin/master分⽀的差别 git merge origin/master //进⾏合并
也可以⽤以下指令:
git fetch origin master:tmp //从远程仓库master分⽀获取最新,在本地建⽴tmp分⽀git diff tmp //將當前分⽀和tmp進⾏對⽐git merge tmp //合并tmp分⽀到当前分⽀
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
git pull 相当于从远程获取最新版本并merge到本地在实际使⽤中,git fetch更安全⼀些git reset--hard origin/master
git reset (–mixed) HEAD~1
回退⼀个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地⽂件(未提交的也 不受影响)
git reset –soft HEAD~1
回退⼀个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的⽂件(未提交的也不受影响) git reset –hard HEAD~1
回退⼀个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的⽂件也将被恢复的版本替换
因篇幅问题不能全部显示,请点此查看更多更全内容