git push 錯誤,回滾 push操做

做者: 故事我忘了
我的微信公衆號: 程序猿的月光寶盒

0.記一次使用git push後,覆蓋了同事代碼的糗事

前言:html

​ 都在WebStorm中操做,Idea或者PyCharm同理linux

​ 爲了高度還原尷尬現場,這裏在原有項目上新建分支,而後都在分支上操做,一方面怕本身搞炸了,一方面真實環境就是如此git

1.還原案發現場的準備工做

1.1 新建分支

圖片

圖片

圖片

注意:

這裏建立的分支僅僅在本地倉庫微信

1.2. 分支提交到遠程Git倉庫

圖片

遠程查看確認,確實有,說明分支已經建立3d

圖片

2.糗事發生契機

​ 這時候別人可能會和你改同一文件code

2.1 假設文件是這個html文件,而後你上傳到遠程分支

注意這時候都是在剛建立的那個分支操做orm

圖片

圖片

​ 能夠看到遠程分支已經有了htm

圖片

2.2 這時我用另外一電腦修改這個文件,並提交到遠程,故意模仿他人操做,如圖,在遠程分支上Linux已經更新過

圖片

2.3 本地文件也作不同的修改,假設本身再不知情的狀況下作push操做必然會引發版本衝突

圖片

Remote changes need to be merged before pushingblog

推送前須要合併遠程更改圖片

​ 這時你點了合併

圖片

圖片

圖片

​ 上圖,把你的和他的都合併提交,可是出現以下警告

圖片

Push has been cancelled, because there were conflicts during update. Check that conflicts were resolved correctly, and invoke push again.

Push已被取消,由於在更新期間有衝突。檢查衝突是否已正確解決,並再次調用pull。

2.4 此時本地我已經作了版本合併,因此,再次pull

圖片

3. 正事來了.回滾吧

​ 如今,你被告知Linux的爲正確的修改,而且你上一步的提交影響到他了,要回滾pushLinux操做的階段

圖片

3.1 將win給回滾調,留下Linux的代碼

步驟

1. 在目標分支上copy revision number

圖片

2. 右擊項目依次選中:git->Repository->Reset HEAD

圖片

圖片

Reset Type選Hard,To Commit 寫剛複製的版本號,

而後點擊Reset按鈕

這時候,代碼已經回到了老的版本,這個時候不能提交代碼,提交也是會衝突的。

4.提交

1.可使用命令強制提交

  git push -f

或者

2.使用Idea,(我使用的是這個方法)

  在最新的commit上覆製版本號

圖片

使用mixed類型,將上面複製的版本號粘貼進來:

圖片

git reset soft,hard,mixed之區別深解

git reset soft,hard,mixed之區別深解

圖片

圖片

又出來這個提示

圖片

3.再次pull

圖片

​ 此時 代碼是最新的正確的,

​ 也就是Linux操做的正確修改

5:驗證 上一步的強制push git push -f

1.說明

  將程序從錯誤的復原,回滾到win操做

2.步驟

  按照上面的步驟進行操做。

  在後面提交的時候,直接強制提交,

圖片

則效果是:

圖片

能夠看到一開始的

對應遠程的文件

圖片

至此就恢復以及修改了,Linux端只要pull一下就好了,就是最新代碼

圖片

相關文章
相關標籤/搜索