git add 撤销代码和git commit撤销代码 git pull遇到错误:error: Your local changes to the following files 。。。。 git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:

git  add 撤销代码和git commit撤销代码 

git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:

1. git add 添加 多余文件 
这样的错误是由于, 有的时候 可能

git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件

git add 如果添加了错误的文件的话

撤销操作

git status 先看一下add 中的文件 
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 

git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

2.在git push的时候,有时候我们会想办法撤销git commit的内容 

1、找到之前提交的git commit的id 
git log 
找到想要撤销的id 
2、git reset –hard id 
完成撤销,同时将代码恢复到前一commit_id 对应的版本 
3、git reset id 

完成Commit命令的撤销,但是不对代码修改进行撤销,可以直接通过git commit 重新提交对本地代码的修改

3.

场景:因为有事情需回到学校搞毕设,同事在公司说接口代码有问题,需要修改;

我用笔记本把代码同步到笔记本,然后做了一些修改、提交。修改完成。

第二天我来到公司(公司里用台式机,不是自己的笔记本),忘了先git pull到本地之后,直接在台式机上的代码进行编写,突然想起忘了pull了,然后想用git pull来更新本地代码。结果报错:

[plain]  view plain  copy
  1. error: Your local changes to the following files would be overwritten by merge:  
意思是我台式机上新修改的代码的文件,将会被git服务器上的代码覆盖;我当然不想刚刚写的代码被覆盖掉,看了git的手册,发现可以这样解决:

方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)

1.  git stash   //保存本地的代码不被pull覆盖

2. git pull origin master  //拉去远程代码 不覆盖本地的修改

3. git stash pop //继续原来的工作

git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug,  先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。


如此一来,服务器上的代码更新到了本地,而且你本地修改的代码也没有被覆盖,之后使用add,commit,push 命令即可更新本地代码到服务器了。

方法2、如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull:

[plain]  view plain  copy
  1. git reset --hard  
  2. git pull origin master  

猜你喜欢

转载自blog.csdn.net/qq_34507902/article/details/80609443