一次解决gitlab文件删除bug的处理过程

问题:不知道什么原因gitlab上的文件被误删除了,到gitlab上直接回退无法回退,

使用的回退方法:

方法1:将本地仓库保存文件夹1,重新建一个文件夹2并将远程仓库拉取到文件夹2,拷贝文件夹1覆盖文件夹2,然后再push上去。

方法2:如果在本地仓库有最新的版本,则直接强制将本地仓库push到远程仓库即可

git push -f origin master ------需要输入账号和密码

方法3:如果本地版本已经异常,将本地仓库的版本回退到正常版本:

git log 查看提交的版本信息 提取出commitID

git reset --hard commitID 回退到指定的版本

git push -f origin master;强制吧本地版本push'到远程仓库

 

当pull过程中出现error: Your local changes to the following files would be overwritten by merge:

意思是我台式机上新修改的代码的文件,将会被git服务器上的代码覆盖;我当然不想刚刚写的代码被覆盖掉,看了git的手册,发现可以这样解决:

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

git stash

git pull origin master

git stash pop

git add 文件

git commit -a -m "message"

git pull 重新拉取一下代码

git push

git push -u origin master

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

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

git log //查看版本更改信息

git reset --hard commitID

git log

git pull origin master

git版本回退命令:

git reset

强制拉取并覆盖本地代码命令:

git fetch --all

git reset --hard origin/master

git pull

----git pull 在什么情况下拉取 不会覆盖本地仓库修改的代码?

1、当无冲突时,本地未提交修改不会被覆盖,能够执行pull

2、当有冲突时,提示Your local changes to the following files would be overwritten by merge”,本次pull执行失败并且不会拉取远端代码,不用担心

 

posted @ 2021-12-14 11:06  GalaxyStar  阅读(587)  评论(0编辑  收藏  举报