Git使用:fork别人的仓库并作为贡献者提交代码

想要实现这一操作,首先需要知道意思的几个名词:上游仓库,远程仓库和本地仓库,其实很简单,用下面的逻辑给你理顺:
你想要fork的代码(上游仓库)---------->你fork的代码(远程仓库)---------->你电脑中的代码(本地仓库)
提交代码的顺序:
你想要fork的代码(上游仓库)<----------你fork的代码(远程仓库)<----------你电脑中的代码(本地仓库)
每个仓库主分支是master,还可以有其它分支
上游仓库的表示为 upstream,远程仓库表示为origin。

下面描述一下具体步骤
首先,现在github或者是码云上,找到你想要fork的代码页,点击fork按钮:
Git使用:fork别人的仓库并作为贡献者提交代码
跳出提示,选择一个自己的远程仓库或者新建一个,确定。
此时,可以看到自己的github或者码云远程仓库中已经fork了一份代码,接下来就是克隆到本地了。
在你的本地库中启动git bash,使用git remote add origin https://github.com/xxxx/xxxx.git指令将远程库加入到本地库;此时,就可以使用git pull origin master将远程库内容pull到本地库,修改完内容后,add并commit且push到远程库,这个暂且忽略。

那么这个时候?怎么将自己的修改提交到你fork的仓库那儿呢?
如果在你push之前,上游仓库代码被修改,那么你需要将其pull下来,合并修改。
#添加上游仓库地址
$ git remote add upstream https://github.com/mlperf/inference.git
#查看远程仓库和上游仓库信息
$ git remote -v
#从上游仓库获取最新的代码合并到自己本地仓库的master分支上
$ git pull upstream master
推荐每次代码待提交前,都从原项目拉取一下最新的代码,最后再使用git push命令将改动同步到自己的Github远程仓库中:
$ git push -u origin master

这样就完成了合并的工作,进入GitHub或者码云的远程仓库,此时已经能够看到刚刚从本地仓库提交的修改了,然后点击New pull request
Git使用:fork别人的仓库并作为贡献者提交代码
进入结果对比页面,如下图所示:
Git使用:fork别人的仓库并作为贡献者提交代码
可以看到从远程库的master分支向上游仓库的master分支申请提交代码
Able to merge代表你的代码与上游代码没有冲突,可以提交
然后点击 create pull request,进入下面页面:
Git使用:fork别人的仓库并作为贡献者提交代码
填写注释,描述你所作的修改,然后点击右下角提交。
然后进入上游仓库的地址,在上游仓库的Pull requests列表里就可以看到自己的提交请求了,等待作者审核即可
Git使用:fork别人的仓库并作为贡献者提交代码