前几天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操作。
前几天boss让做一个PR,一脸懵逼,查资料问同事,最后还被boss批,终于提交了PR。PR,全程pull Request ,下面写一下提交过程和我遇到的坑。项目背景:一个开源项目,我自己创建了一个分支并进行大量修改,需要PR到master上面,boss进行merge。1. 登录我的github,访问开源项目的github,在代码右上方有一个按钮,fork。点击fork后,自己的git...
npm npm i @technote-space/
github
-action-
pr
-helper
纱yarn add @technote-space/
github
-action-
pr
-helper
import { run } from '@technote-space/
github
-action-
pr
-helper' ;
run ( {
actionName : 'Test Action' ,
actionOwner : 'octocat' ,
actionRepo : 'hello-world' ,
} ) ;
初始化工作目录
克隆分支名为${
pr
Branch
Pr
efix}${
pr
BranchName}
最近在工作中
提交
代码时,要求需要交给领导来review,因此需要
提交
一个
pull
request
,因此作为学习,整理出一个流程
当你想更正别人仓库里的错误时,要走一个流程:
1.先 fork 别人的仓库,相当于拷贝一份,因为不
会
直接让你修改原仓库。
2.clone 到本地分支,做一些 bug fix。
3.发起
pull
request
给原仓库,让他看到你修改的 bug。
4.原仓库 review 这个 bug,如果是正确的话,就
会
merge 到他自己的项目中
至此,整个
pull
reque
GitHub
Pull
Request
s (
PR
)
提交
指南-Pycharm版
若您对
GitHub
的
Pull
Request
s(
PR
)操作流程感到陌生,我们非常建议您使用自己熟练的IDE来完成基础的
PR
操作。接下来的示例中我们将
会
演示如何向”Test
PR
”示例项目中
PR
一个简单”test.py”文件。
Step 1 Fork目标项目
Step 2 获取
GitHub
项目链接
打开待
PR
的目标
GitHub
项目页面并点击“Code”按钮,获取该Repo的Git地址。
Step 3 在Pycharm中Clone该
github
上有很多优秀的开源项目,很多时候我们不仅仅只是满足于使用,同时也想一起参与开源项目的开发,贡献自己的代码。今天这篇文章就给大家介绍一下如何在
github
上
提交
PR
,让我们一起为开源社区做贡献。
fork你要参与的项目
在
github
上找到你想要参与的开源项目(这里以 ant-design 为例),然后点击右上角的 fork 按钮,就
会
在你自己的代码仓库中创建一个此开源项目的副本,后续所有代码
提交
都
提交
到此仓库,这样就不必担心未经审核的代码弄乱了原始仓库。
完成了fork步骤后,
会
在
首先要记住,
pull
request
不是随便
提交
的,这是建立在你对原作者的项目有fork,并对项目中的代码有修改,并
提交
到了你的
GitHub
上,才能进行下面的操作。
若不知怎样fork项目,请看我的这篇博客:
GitHub
fork的使用。
选择自己fork的项目:
点击上图中的New
pull
request
按钮:
我们就
会
看到自己修改后的项目和原项目的不同之处,然后进行Create...
一、前言昨晚应老师要求参与教材的修正工作,需要涉及到
github
上的
PR
(
Pull
Request
)操作。本来以为很简单的一个事情,没想到还得让我翘课,花了一个多小时的时间才搞明白,收获挺多。饭先不吃,先写博客,分享出来。二、实现步骤简单暴力的实现步骤,先不做太深入的细节分析。
为了叙述方便,特此声明:
此处小明要与小红进行合作,小明需要对小红在
GitHub
上的的Repository进行fork
上面点了新建
request
后,来到图二。看仓库名称可知,当前是打开到了原仓库,而不是在自己的fork仓库了。下面的Comparing changes就是对比,看下我们fork的仓库和原仓库,有多少代码没同步。
默认的话,是显示:base respository:原仓库
代码小生123:
HashMap常用方法
南方的东:
Git撤销本地commit
Shanne Lee:
项目管理----项目进度管理