如何优雅的在GitHub贡献代码

简介: 如何优雅的在GitHub贡献代码

基于GitHub仓库进行代码贡献操作步骤。


Fork代码

访问原始仓库,点击fork,将原始仓库代码fork到自己的GitHub账号下,成为副本仓库。


Clone副本仓库到本地

把fork后的副本仓库 clone 到本地。


git clone git@github.com:secbr/nacos.git

1

这里fork的原创仓库、副本仓库,均为nacos的develop(开发)分支。


创建本地分支

进入仓库目录,使用如下命令创建并切换到dev分支(自己的本地分支)。


git checkout -b dev # 创建并切换到dev分支

1

本地仓库提交

基于本地分支dev进行代码修改,然后进行本地提交。


相关命令:


git add . # 添加修改文件

git commit -m 'remove the if statement' # 提交 commit

1

2

先别着急push,还有问题需要解决。


跟踪原始仓库(upstream)合并

副本仓库的修改不会影响到原始仓库。同样,原始仓库的更新也不会反映到副本仓库。


origin是用来向副本仓库提交更新的远程仓库;upstream,也被称为上游,是专门用来同步原始仓库更新的远程仓库。


查看仓库关联情况命令:


(base) appledeMacBook-Pro-2:nacos apple$ git remote -vv

origin  git@github.com:secbr/nacos.git (fetch)

origin  git@github.com:secbr/nacos.git (push)

1

2

3

在本地仓库添加upstream:


git remote add upstream git@github.com:alibaba/nacos.git

1

再次查看关联情况:


(base) appledeMacBook-Pro-2:nacos apple$ git remote -vv

origin  git@github.com:secbr/nacos.git (fetch)

origin  git@github.com:secbr/nacos.git (push)

upstream        git@github.com:alibaba/nacos.git (fetch)

upstream        git@github.com:alibaba/nacos.git (push)

1

2

3

4

5

关联成功,既有orgin,又有upstream。


如果上游(upstream)更新了很多提交,则可有两种方式拉取并合并上游的更新。


方式一

git checkout develop # 切换到默认存在的develop分支,其他项目可能是master(下同)

git pull --rebase upstream develop:develop # 使用rebase模式拉取upstream/develop上的更新

# 且与本地的develop合并。第一个develop是远程分支,第二个是本地分支。

git checkout dev # 切换到前面建立的dev分支

git rebase develop # 使用rebase模式合并本地的dev和develop分支

1

2

3

4

5

方式二

git checkout develop # 切换到develop分支

git fetch upstream develop # 获取upstream上的develop分支

git checkout dev

git rebase upstream/develop # 使用rebase模式合并本地的dev和upstream/develop分支

1

2

3

4

这里采用第二种方式进行验证。


总的来说,可以把本地的develop(master)分支当作一个只负责从上游获取更新的分支,所有本地的改动都不会直接在develop上面进行。


而是先将上游的develop和本地的develop合并,此时,本地的develop是上游的最新版本;


再通过合并dev和本地的develop来完成本地改动的更新。整个过程在未开始合并之前,你的代码更新应该只会出现在dev分支上。


注意:在使用 git rebase 相关的命令时,需要谨慎应用在已经提交的更新或远程仓库上。


推送(push)到副本仓库

现在,已经完成代码的修改、上游的同步更新并且完成了合并。接下来应该将代码 push 到副本仓库。


git push origin dev # 将本地dev分支的代码push到origin的dev分支

# 如果该分支不存在则会创建

1

2

这个 push 只会更新副本仓库,并不会影响到原始仓库。要将代码贡献到原始仓库,还要发起 Pull Request。


发起合并请求(Pull Request)

直接在GitHub网页上发起对应的pull request请求。


新一轮功能修改

上述功能修改完毕,则可删除副本仓库中的dev分支。


新功能的修改,继续重复上面的创建本地分支、修改代码、执行add和commit操作、更新合并upstream(可放在创建分支之前和代码修改过程中的提交变动)、将本地新建分支推送至副本仓库、基于部分仓库创建Pull Request。



目录
相关文章
|
8月前
github克隆代码加速
github克隆代码加速
174 2
|
9月前
|
机器学习/深度学习 算法 程序员
GitHub:代码世界的来世今生
GitHub:代码世界的来世今生
81 1
|
9月前
|
开发工具 数据安全/隐私保护 git
如何提交代码到github
如何提交代码到github
|
9月前
|
人工智能 运维 Linux
一文了解IntelliJ IDEA如何使用git上传代码到GitHub(附常见问题解决方案)
一文了解IntelliJ IDEA如何使用git上传代码到GitHub(附常见问题解决方案)
474 0
|
1月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
93 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
4月前
|
开发工具 git Python
代码管理记录(二):Github代码上传实操
本文是关于如何使用Git将本地代码上传到GitHub的实操指南。介绍了Git的基本概念、安装方法,并通过详细的步骤指导用户从GitHub创建仓库到使用Git命令初始化、添加、提交代码,最终将代码推送到远程仓库。同时,还汇总了一些常见的错误及其解决方法。
131 2
代码管理记录(二):Github代码上传实操
|
6月前
|
存储 安全 API
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
|
6月前
|
安全 网络协议 Shell
Github代码仓库SSH配置流程
这篇文章是关于如何配置SSH以安全地连接到GitHub代码仓库的详细指南,包括使用一键脚本简化配置过程、生成SSH密钥对、添加密钥到SSH代理、将公钥添加到GitHub账户以及测试SSH连接的步骤。
154 0
Github代码仓库SSH配置流程
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
这篇文章是一份详细的GitHub使用教程,介绍了如何在GitHub上创建仓库、创建分支、编辑和发布更改内容、发起拉取请求以及合并分支的操作步骤。
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
|
6月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之从GitHub下载代码失败是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

热门文章

最新文章