<span style="color:red;font-weight:bolder">場景1:</span>本地提交并推送了代碼到遠程倉庫(此時本地和遠程對應分支都是最新的代碼),然后本地改了一些代碼,發現有問題,要回退至提交推送以后,但是改代碼之前的代碼,執行命令:```git reset --hard```,如圖所示:

<span style="color:red;font-weight:bolder">場景2:</span>本地提交并推送了代碼到遠程倉庫(此時本地和遠程對應分支都是最新的代碼),然后線上發生報錯問題,此時線上代碼要回退至上一個(指定提交版本commit_id)沒問題的倉庫,此時執行回滾命令:```git reset --hard <commit_id>```,再執行推送命令:```git push```,即可解決此問題
注意:此種方式線上代碼可以回滾到指定版本,但是本地已經修改的代碼是不會回滾的,直接拉取線上最新到本地[本地會不會報錯,具體分析.,不過可以確定線上回滾到了Bug報錯前的代碼]
<span style="color:red;font-weight:bolder">場景3:</span>執行合并到主分支的操作時,如果遇到代碼沖突,怎么處理
1. 確認合并失敗:執行以下命令進行分支合并(當前所在master主分支):
~~~
git merge test
~~~
如果出現沖突,Git 會給出相應的提示信息。
2. 查看沖突文件:執行以下命令查看發生沖突的文件列表:
~~~
git status
~~~
這會列出所有發生沖突的文件。
3. 打開沖突文件:選擇一個沖突文件,使用文本編輯器打開它。在文件中,Git 會用特殊標記標示出沖突的部分,例如:
~~~
<<<<<<< HEAD (master)
222
=======
111
>>>>>>> test
~~~
在這個例子中,`<<<<<< HEAD`到`=======`之間是`master`分支的內容,`=======`到`>>>>>>> test`之間是`test`分支的內容。
4. 解決沖突:根據實際需求,選擇保留所需的代碼并刪除特殊標記,或進行其他修改來解決沖突。例如,你可以修改文件為:
~~~
111
~~~
表示選擇保留`test`分支的修改。
或者,你也可以修改文件為:
~~~
222
~~~
表示選擇保留`master`分支的修改。
根據具體情況解決完沖突后,保存文件。
5. 添加解決后的文件:執行以下命令將解決沖突后的文件添加到暫存區:
~~~
git add <沖突文件>
~~~
替換`<沖突文件>`為實際發生沖突的文件名。
6. 提交合并:執行以下命令將解決沖突后的文件提交到本地倉庫:
~~~
git commit
~~~
這將打開文本編輯器以輸入提交信息。在編輯器中,你可以提供合適的提交信息來描述你的修改。保存并關閉編輯器后,提交完成。
7. 推送改動(可選):如果你想將合并后的改動推送到遠程倉庫,執行以下命令:
~~~
git push origin master
~~~
這會將本地的`master`分支推送到名為`origin`的遠程倉庫