1. 程式人生 > 其它 >一次解決gitlab檔案刪除bug的處理過程

一次解決gitlab檔案刪除bug的處理過程

問題:不知道什麼原因gitlab上的檔案被誤刪除了,到gitlab上直接回退無法回退,

使用的回退方法:

將本地倉庫儲存資料夾1,重新建一個資料夾2並將遠端倉庫拉取到資料夾2,拷貝資料夾1覆蓋資料夾2,然後再push上去。

其實有更簡單的方法:

將本地倉庫的版本回退到正常版本:

git log檢視提交的版本資訊提取出commitID

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

git push -f ;強制吧本地版本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執行失敗並且不會拉取遠端程式碼,不用擔心