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

猜你喜欢

转载自blog.csdn.net/weixin_41697143/article/details/81837369