Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Github的正确使用方法

Github的正确使用方法

作者头像
Allen Cheng
发布于 2018-09-10 03:30:31
发布于 2018-09-10 03:30:31
5.7K0
举报
文章被收录于专栏:听Allen瞎扯淡听Allen瞎扯淡

在了解了Git的基本用法后(如果你还未了解 Git 的基本使用方法,建议你先话点时间阅读下《 Pro Git 》这本书),相信你已经开始跃跃欲试了,那么我就说下如何正确的使用 Github。下面的图描述了使用 Github 的基本流程:

第一步:Fork项目

Fork 项目其实就是在 Github 上拷贝一份他人项目的副本作为自己的项目。当你进入一个项目页面后,会在右上方看见一个Fork的按钮,点击它就可以 Fork 一个项目。

需要注意的是Fork项目后,你自己的项目并不会和源项目保持自动同步,所以你需要手动进行更新,如何更新请看:第五步:拉取源项目的更新

第二步:Clone 到本地

Fork 项目后,我们就可以把代码 Clone 到本地以便我们修改。Github 提供两种 Clone 项目的方式,SSH/HTTPS。如果选用SSH模式,你需要先在本地生成一对SSH Key并上传到Github用于身份识别,具体请参考 Github 的帮助文档:Generating an SSH key。如果选用HTTPS模式,在更新和提交时就要输入 Github 的用户名和密码。一般来说使用 SSH 模式,在一次配置后,就可以免输密码提交代码,比较方便,但使用 HTTPS 模式更具备通用性,所以各有利弊,随意选择~

# 使用 ssh clone 项目到本地$ git clone git@github.com:rvm/rvm.git# 使用 https clone 项目到本地$ git clone https://github.com/rvm/rvm.git

第三步:创建分支

每次开发新功能,都应该新建一个单独的分支(这方面可以参考《Git分支管理策略》)。

# 获取主干最新代码$ git checkout master$ git pull# 新建一个开发分支myfeature$ git checkout -b myfeature

第四步:Commit 新代码

分支修改后,就可以提交commit了。

$ git add --all$ git status$ git commit --verbose

  • git add 命令的all参数,表示保存所有变化(包括新建、修改和删除)。从Git 2.0开始,all是 git add 的默认参数,所以也可以用 git add . 代替。
  • git status 命令,用来查看发生变动的文件。
  • git commit 命令的verbose参数,会列出 diff 的结果。

需要注意的是 Commit 代码必须给出简明扼要的提交信息,下面是一个范本,第一行是不超过50个字的提要,然后空一行,罗列出改动原因、主要变动、以及需要注意的问题。最后,提供对应的网址(比如Bug ticket)。

Present-tense summary under 50 characters* More information about commit (under 72 characters).* More information about commit (under 72 characters).http://project.management-system.com/ticket/123

第五步:拉取源项目的更新

当我们在修改代码的时候,源项目肯定也会发生变化,所以在我们向源项目推送代码之前,需要先将源项目的代码更新拉取下来。

先查看我们的 Remote 配置

$ git remote -vorigin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

将源项目添加为 upstream

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

检查配置是否生效

$ git remote -vorigin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

拉取源项目的变更

git fetch upstreamremote: Counting objects: 75, done.remote: Compressing objects: 100% (53/53), done.remote: Total 62 (delta 27), reused 44 (delta 9)Unpacking objects: 100% (62/62), done.From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY * [new branch] master -> upstream/master

切换到 master 分支

$ git checkout master

将源项目的修改合并到本地 master 分支

git merge upstream/master

第六步:Rebase 本地分支并解决冲突

接着我们切换到之前的开发分支 myfeature,并同 master 分支进行同步

$ git checkout myfeature$ git rebase master

有时我们会和主干发生冲突,那么我们需要在本地把所有冲突解决掉后才能继续合入代码。如何解决冲突,请阅:Resolving a merge conflict from the command line

第七步:Push到Github

同步好本地分支后,我们就可以将代码推送到Github了

git push -u origin myfeature

第八步:发送Pull Request

点击项目页面上方的pull request按钮

我们自己的项目选择之前的开发分支,源项目选择 master 分支

在下面的页面上填写上描述,然后点击发送即可,接着下来就是原作者的事儿了,如果他同意合入我们会在项目的 master 分支看到我们刚刚贡献的代码。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
同步一个 fork
fork 了别人的仓库后,原作者又更新了仓库,如何将自己的代码和原仓库保持一致?本文将给你解答。
零式的天空
2022/03/22
4220
git相关问题解析,你想要的都有🔥
本地同步默认分支最近n次的commit信息,克隆默认分支master最近一次commit
甜点cc
2022/12/21
1.5K0
git相关问题解析,你想要的都有🔥
Github代码fork之后,如何与原仓库进行同步?
我们在使用GitHub时,看到好的项目或想给某个项目做贡献,此时通常会将代码仓库fork到自己的账号下。如果在此期间,如果源仓库的代码发生了变动,就需要与源仓库代码进行同步。本篇文章就带大家实操一下,如何实现这一操作。
程序新视界
2021/12/07
9960
论与美女搭讪的正确姿势
不好意思放错片子了。。。同样是搭讪,今天来聊聊如何与GitHuber的"搭讪"艺术。附上封面图补偿一下。。。
用户3904122
2022/06/29
5120
论与美女搭讪的正确姿势
珍藏多年的 Git 问题和操作清单
本文整理自工作多年以来遇到的所有 Git 问题汇总,之前都是遗忘的时候去看一遍操作,这次重新整理了一下,发出来方便大家收藏以及需要的时候查找答案。
猿天地
2019/09/03
1.4K0
珍藏多年的 Git 问题和操作清单
GitHub团队项目合作流程
首先把队友直接push的权限关掉,即设置成Read。这样可以防止队友误操作,未经审核就把代码push到团队项目上。 Teams用来分配issue的时候会用到,所以保留下来,并不是没有用。
用户7353950
2022/06/23
1K0
GitHub团队项目合作流程
Git 常用命令清单笔记
这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加的,后面慢慢增加了许多内容,可以看出的的学习轨迹。分享出来方便自己查看,也许能帮助到你。
小弟调调
2018/09/11
8560
常用Git命令和操作(github)
git和github是不同的概念,git是版本控制工具,github是托管 Git项目的云端平台。
张子阳
2018/09/29
6790
Git Feature Branch Workflow
Zion项目我们采用Feature Branch Workflow,即每个特性在branch中开发,master始终保持稳定。特性开发完成,需提交pull request,接受其他成员的code review,同时可以在PR中围绕该特性进行讨论,PR记录了开发过程的细节。
mazhen
2023/11/24
1960
Git Feature Branch Workflow
GitHub 使用手册 - 基础篇
缘起 Git已经成为程序员必备技能之一,而GitHub做为做流行的Git仓库托管平台,其不仅提供Git仓库托管,还是一个非常棒的技术人员社交平台,可以通过开源的项目进行协作、交流,是现在优秀的工程师必须娴熟运用的。 本套教程从 GitHub 的历史入手,介绍 Git 安装、创建仓库、Fork、社会化、命令行开发,到最后的图形化工具的使用。 学习完本教程,将不仅掌握 GitHub 命令行使用方法,也会学会图形化使用方法。 GitHub 简介 Git 是一个优秀的分布版本控制系统。版本控制系统可以保留一个文件集
用户1941540
2018/05/11
1.7K0
Git的正确使用姿势与最佳实践|青训营笔记
课程链接:https://live.juejin.cn/4354/yc_Git-posture
白泽z
2022/08/18
7080
Git的正确使用姿势与最佳实践|青训营笔记
工程化专题之Git前言Github && Git 中的一些重要概念 Git在实际中的使用方式Git常用命令总结
一个专业的程序员,怎么能不掌握Git呢?版本控制领域,已经发展了一段时间,从古老的CVS,到SVN集中式管理,再到现在的Git。由于Git的分布式、everything is local、分支等诸多特性,让越来越多的项目开始从SVN迁移到Git进行管理。本篇博客将介绍Git的一些重要概念、实际工作中Git的一些使用方式、背后涉及的一些原理思想等。如果你还对Maven感兴趣,可以阅读:
用户2890438
2018/08/20
7380
如何在github上提交PR(Pull Request)
github 上有很多优秀的开源项目,很多时候我们不仅仅只是满足于使用,同时也想一起参与开源项目的开发,贡献自己的代码。今天这篇文章就给大家介绍一下如何在 github 上提交 PR,让我们一起为开源社区做贡献。
astonishqft
2022/05/10
8.9K0
如何在github上提交PR(Pull Request)
如何参与github开源项目
clone到本地 在github上有注册的账号,https://github.com/ 找到自己感兴趣的开源项目,如:https://github.com/wuhan2020/wuhan2020.github.io 在项目主页点一下fork 点右侧自己的头像,点击Your repositories,找到刚才fork的项目 clone 该仓库到本地,切到相应的分支,默认dev 这时你就可以发挥自己的聪明才智修复Bug,开发新功能,进行commit,push了 pull request 当你贡献完毕后就可以把
kiki.
2022/09/29
5830
如何参与github开源项目
使用Git与GitHub协同开发并搭建私有GitLab代码托管服务器
Linus在1991年创建了开源的Linux,从此全世界的工程师参与了Linux的开发,期初Linus是通过手动diff的方式进行代码审核和合并的,后来BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!如果当时BitMover公司专门为Linux发布一个社区版,也许这家公司也就名垂青史了,可是当时这家公司思想境界没那么高而且Linus也那么牛!
星哥玩云
2022/07/24
1.6K0
使用Git与GitHub协同开发并搭建私有GitLab代码托管服务器
如何使用github给大佬递茶
最近也是闲到没事干(误),开始给开源项目打小黑工贡献代码,当个dalao手底下的端茶党。但是看来端茶党也不是那么容易做的或许只是傻翠他智商太低跟不上,在打小黑工的时候遇到了各种各样的麻烦,下面大概记录一下,不知道以后有没有人能用得上。
idealclover
2018/10/31
9200
学习Git(二)基本操作
Git 基础操作 1. 创建版本库 什么是版本库呢?版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/learngit pwd命令用于显示当前目录。 如果你使用 Window
小歪
2018/04/04
9560
学习Git(二)基本操作
Git 帮助手册
国外网友制作了一张 Git Cheat Sheet,总结很精炼,各位不妨收藏一下。
硬件开源小站
2023/04/07
4.6K1
Git 帮助手册
学习Git和Github,从这里开始!
Git 是一个免费开源分布式版本控制系统,由于其占用空间小、性能快,优于其他SCM工具(SVN、CVS等),主要用于代码版本管理。
Learn-anything.cn
2022/01/14
6640
git与github在ubuntu下的使用
最近开始使用git对kohana3的文档做一些补充的工作,使用了git 和 github ,从了解到使用,还是有一点距离,下面是总结的一些方法。
大江小浪
2018/07/25
1.1K0
git与github在ubuntu下的使用
相关推荐
同步一个 fork
更多 >
LV.1
腾讯高级工程师
交个朋友
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档