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 [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操作。
上一篇: # [js] 函数 call()方法和 apply()方法
下一篇: Java单例模式实例简述