github提交pr的流程

1.注册github账户

2.签署CLA贡献者许可协议

参考

https://github.com/kubernetes/community/blob/master/CLA.md。

此处选择个人登录。


进入后使用自己的github账号进行登录。


之后按步骤提示进行操作。

有一步让选择作为个人或作为employee登录,选择个人即可


之后按步骤提示会让输入姓名,email等信息(email和github绑定的email保持一致),按提示进行操作即可。

最终签署完成后,会收到HelloSign的邮件。


表示签署过程完成。

3.创建issue:


在原项目中进行new issue,描述想进行修改的问题。

4.提交pr

pr操作demo:

此处小明要与小红进行合作,小明需要对小红在GitHub上的的Repository进行fork等一系列的操作。

2.1 将小红在GitHub上的Repository clone到小明的本地电脑

这一步看起来很简单事实上涉及到一个细节,我之前一直都忽略了。

上图:

2.1.1 fork小红在GitHub上的Repository到小明的GitHub

此操作的作用是将k小红在GitHub上的Repository到小明的GitHub,这时小明的GitHub上多了一个fork的Repository;

如下图:


2.2.2

2.1.2 clone小明的GitHub Repository到小明的本地电脑

打开刚才fork的Repository,复制该Repository的SSH使用命令

git clone [email protected]:GaoZiqiang/firstGit.git

clone到小明的本地电脑;

2.2 与小红在GitHub上的的Repository建立新的链接

2.2.1查看当前链接情况

使用

git remote -v

命令查看一下小明的本地Repository与哪些远程仓库建立了链接,你会发现:只与小明在GitHub的Repository建立了链接,很显然没有与小红在GitHub上的Repository建立链接,如下图:


2.2.2 与小红的GitHub上的Repository建立链接

现在使用命令

git remote add upstream https://github.com/timo1160139211/firstGit.git

与小红在GitHub上的Repository建立链接,注意此处的SSH为小红的GitHub上的Repository的SSH;

查看:


2.3 修改Commit

2.3.1 新建工作分支

使用命令:

git checkout -b xiaoming-branch

新建并切换到新建的分支 xiaoming-branch;

使用命令:

git branch

查看当前所在分支。

2.3.2 修改

比如新建文件PRTest;

2.3.3 提交

使用 git add PRTest ,git commit ,git push等系列命令提交到小明的GitHub上的Repository(一定注意,是小明的)

2.4 发起PR(Pull Request)

2.4.1 Comparing changes

a.到小明的GitHub的Repository上点击Pull Requests,再点击New pull requests按钮;

如下图:


b.进入Comparing changes界面。


2.4.2 Create pull request

a.点击Create pull request按钮;


b.填写相关信息,在点击Create pull request按钮即可。



git fork代码后如何同步

1. 克隆代码库

 git  clone http://[email protected]/Tom/Realtek.git

2. 查看已关联的远程库,此时只有默认关联仓库origin

 git  remote -v

origin  http://[email protected]/Tom/Realtek.git (fetch)

origin  http://[email protected]/Tom/Realtek.git (push)

3. 关联到upstream远程仓库

git remote add test-isp http://[email protected]/test-isp/Realtek.git

 git  remote -v

origin  http://[email protected]/Tom/Realtek.git (fetch)

origin  http://[email protected]/Tom/Realtek.git (push)

test-isp http://[email protected]/test-isp/Realtek.git (fetch)

test-isp http://[email protected]/test-isp/Realtek.git (push)

4. 抓取upstream

git fetch test-isp

5. 查看抓取到的upstream远程仓库的修改历史,了解需要合并的内容。

master…origin/master 语法是一个日志过滤器,要求 Git 只显示所有在后面分支(在本例中是

origin/master)但不在前面分支(在本例中是 master)的提交的列表。

git log --no-merges master..test-isp/master

6. 合并代码

git merge test-isp/master

7. 推送到自己的远程库中,更新代码

git push origin master


————————————————

遇到的一些问题解决方案

1.我在使用mac的时候遇到,本地git存在原有账户,现在需要使用另一个账户提交代码时,push代码push不上去,可以尝试如下命令

git remote set-url origin https://[email protected]/username/repo-name.git

但是这样的解决方法,每次一个新的项目都需要执行


2.LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

奇怪的错误,好像跟代理有关,但是我没有配置任何代理,。。。。重启解决了,经常偶现,彻底解决方法暂时未找到。

3.有些项目做pr的时候需要签名,这就需要我们在commit时做如下贡献

当你提交时,只需使用:

git commit-s

要么

gitcommit--signoff

或者你可以在提交消息的末尾写一行,它们自己由提交的正文中的空行分隔:

Signed-off-by: Your Name

如果您已经有提交,请使用git commit -s -amend来添加上述注销行。

或者,如果要将其作为补丁或补丁系列发送,您可以使用git format-patch -s或–signoff将补丁添加到修补程序本身,而无需修改提交。

4.有时间你的pr很久之后才会被合并,此时会要求你rebase一下代码,

5.最近遇到的问题,通过账户名密码无法登录。查找的的解决方法为下

1在github 个人的Settings Developer settings 下Developer settings 生成对应的token

2.设置token,这里分成两种情况,代码已经有的,远程仓库地址添加token;没有代码的,在git clone添加token

修改远程仓库添加token

git remote set-url origin https://@github.com//.git

git clone 添加token

git clone https://@github.com//.git

添加好token就可以推送和下拉代码了

你可能感兴趣的:(github提交pr的流程)