欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

github提交PR(pull request)过程和问题

程序员文章站 2024-02-28 20:08:52
...

前几天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 [email protected] 我自己的项目地址

3.到项目的github中,复制项目的链接,继续查看当前状态

git remote add upstream 开源项目的链接

git remote -v

反馈信息如下:

origin [email protected] 我自己的项目地址

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操作。