1. 程式人生 > >github提交PR(pull request)過程和問題

github提交PR(pull request)過程和問題

前幾天boss讓做一個PR,一臉懵逼,查資料問同事,最後還被boss批,終於提交了PR。

PR,全程pull Request ,下面寫一下提交過程和我遇到的坑。

專案背景:一個開源專案,我自己建立了一個分支並進行大量修改,需要PR到master上面,boss進行merge。

1. 登入我的github,訪問開源專案的github,在程式碼右上方有一個按鈕,fork。點選fork後,自己的github就出現了這個專案。

2. 到自己的github專案中,點選clone到本地。

git clone 我的github專案連結

接下來執行完畢,使用git remote -v 檢視當前狀態,會出現這樣的反饋資訊

origin git@github 我自己的專案地址

3.到專案的github中,複製專案的連結,繼續檢視當前狀態

git remote add upstream 開源專案的連結

git remote -v

反饋資訊如下:

origin git@github 我自己的專案地址

upstream http://github.com 開源專案的專案地址

現在你的原生代碼已經與遠端程式碼相連了。

坑1: 一定確定origin是你自己的地址,upstream是遠端的地址。

4. 在本地建立分支,在分支上進行編輯程式碼,提交程式碼

git branch 新分支(develop)

git checkout develop

// 在本地編輯改變程式碼

git add .

git status

git commit -m '提交原生代碼'

git push origin master

坑2:自己需要提交程式碼到自己的master分支。(我好幾次都提交到develop分支,結果後面出錯不能PR)

5.在github上面進行操作:在自己的介面上點選pull request ----繼續點選pull new request 進行提交

然後進入compare change 比較變化介面,進行程式碼比較。此時可以選擇compare across forks 進行比較。

坑3:我自己增刪改動很多,所以無法進行直接比較,或者無法進行merge,需要手動解決衝突。

最後我只好把自己刪除的部分去掉,保留自己新增的一部分程式碼,這樣進行了提交(這部分時間花了我3個小時。。。)

6.如何解決衝突(保證自己的程式碼功能不受影響的前提下)?需要進行下面的操作

// 如何解決衝突問題?

git checkout master

git pull url master //下載最新master(包含新的commit的master)

git checkout develop-branch(自己的分支)

git rebase -i url/master (將新的master程式碼rebase到自己的分支上面)

while(出現衝突)

{需要git status 手動解決程式碼衝突 git add . git rebase --continue}

git push -f origin develop-branch

這部分操作我沒有全面處理過,自己之前直接刪除有衝突的部分。以後需要多實踐才行。

寫程式碼感悟:git等非視覺化介面的操作,不能死記硬背,主要靠日常多操作。不能急躁,git寫錯程式碼容易造成更大的麻煩。

總結:

pull request: 個人程式碼提交到團隊程式碼過程

1.登入個人的github賬戶,對團隊的github的repo進行fork。那麼個人的賬戶下就有了團隊的repo。(視覺化)

2.clone資料庫的地址到本地電腦。

git clone 團隊.git(git介面)

3.使用git remote -v 檢視本地repo與哪些遠端倉庫建立了聯絡?目前自己本地repo只和自己的遠端repo建立聯絡,並沒有與團隊的repo建立聯絡。

4.使用git remote add upstream 團隊repo地址

將本地repo與遠端團隊的repo建立聯絡。

檢視git remote -v 即可檢視目前本地repo已經與自己的repo聯絡,也與團隊的repo聯絡. origin是自己的地址,upstream是團隊的地址。

5.新建分支 git checkout -b 新分支

git branch 切換到新分支(使用git branch 檢視當前分支)

修改檔案 git add. git commit git push(一定push到自己的repo)

發起PR(pull request)——視覺化

1.在自己的repo上,點選pull-request ,點選new pull request。(最好是自己的master合併到團隊的master進行PR操作)

2.comparing changes -判斷差異,團隊負責人負責合併分支。

其他的事情需要團隊負責人進行merge操作。

工作流程

1.負責人提出功能要求(更改要求)

2.前端完成預期效果

3.截圖給負責人看

以上三步操作重複完成多次,直到產品功能完善後

4.前端提出pull request 進行合併程式碼操作。(自己將程式碼進行完善整理後),負責人進行merge操作。