使用git處理github中提交有衝突的pull request
- 2020 年 11 月 12 日
- 筆記
- 【Git】, 【SourceTree】
前言:
為什麼要寫這篇文章,因為前段時間有一個開源的github中的項目有一個朋友提交了一個pr看了下是幫忙優化了下代碼(十分感謝這位網友)。但是他提交的pr剛好和我的項目有許多的衝突導致無法自動合併,在github中提示只能使用命令行指令進行合併,因為這種情況處理的比較少為了以後方便使用在這裡記錄一下。
github中的大概命令合併指令
1、首先我們需要下載一個git分佈式管理工具
下載Git鏈接地址://git-scm.com/
2、然後我們需要clone下我們的項目
git clone [email protected]:YSGStudyHards/NPOI-ExportWordAndExcel-ImportExcelData.git(ssh項目鏈接)
3、創建並切換到該分支,並同步到master中
git checkout -b 創建的分支名 master
使用git branch查看當前所屬分支
4、拉取有衝突的pr到該分支中
git pull https//github.com/某人的/某項目的.git master
github中的命令語句
git pull git://github.com/hongbobaoer/NPOI-ExportWordAndExcel-ImportExcelData.git 20201109
5、直接打開衝突文件手動解決衝突
當項目拉取下來以後,我們就需要解決有衝突的文件信息了
由下面的衝突文件中的衝突內容我們了解到:
<<<<<<< HEAD 6月19日 pingrixuexilianxi添加了內容 ======= 6月18日 pingrixuexilianxi2修改了這個文件哦 >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5
<<<<<<< HEAD到 =======裏面的【6月19日 pingrixuexilianxi添加了內容】是自己剛才的Commit提交的內容
=======到 >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5裏面的【6月18日 pingrixuexilianxi2修改了這個文件哦】是遠程代碼庫更新的內容(即為pingrixuexilianxi2本地代碼庫推送修改內容)。
手動衝突解決方法
根據項目需求刪除不需要的代碼就行了,假如都需要的話我們只需要把 <<<<<<< HEAD======= >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5都刪掉衝突就解決了(注意,在項目中最後這些符號都不能存在,否則可能會報異常)。
或者可以使用git可視化管理工具(推薦)
原因:由於有些人使用代碼合併比較生疏,為了避免出錯推薦使用sourcetree進行解決衝突合併。
詳細使用sourcetree地址參考://www.cnblogs.com/Can-daydayup/p/13128633.html
6、合併更改並在GitHub上更新
注意:這裡是沒有使用可視化工具合併的時候才需要自己使用代碼去執行合併,提交,更新操作!
git commit -a //把修改提交到新建的分支上,會提示你成功merge本地代碼到這個人的代碼庫 git checkout master //切換到自己的主分支上 git merge 創建的分支名 //將新建的分支合併到自己的分支上 git push origin master //將代碼推送的遠程倉庫中