一次解決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執行失敗並且不會拉取遠端程式碼,不用擔心