GitHub与Git简单介绍

GitHub入门与实践总结
自己的博客 http://blog.csdn.net/qq_22329521
什么是GitHub
==
github是开发者提供Git仓库的拓宽平台,让开发者与朋友,同事同学及陌生人共享代码的一个平台

GitHub除了提供Git仓库的托管服务外,还为开发者或团队提供了一系列功能,帮助其高效率,高品质地进行代码的编写

GitHub提供的主要功能

  • Git仓库:
    一般情况下我们可以免费创建任意个GitHub提供的Git仓库。但如果需要建立只对特定人物或者自己公开的私有仓库,则需要付钱
  • Organization:
    个人在使用个人账户就足够了,但如果是公司,建议使用Origaniztion账户,它的优点在于可以统一管理账户和权限,还能统一支付一些费用。如果只是公开仓库,是交流群或者小团体开发软件,可以免费创建Organiztion账户。
  • Issue
    Issue功能,是将一个任务或者问题分配给一个Issues进行追踪和管理的功能。每一个功能更改或者修正都对应一个Issue,讨论或修正都已这个Issue为中心进行。只要查看Issus,就知道这个更改相关的一切信息,以此进行管理。在Git上提交信息写上Issus的ID(例如 “#7"),GitHub就会自动生成从Issue到对应提交的链接。另外,只要按照特定的格式描述提交信息,还可以关闭Issue。
  • WiKi:
    Wiki作为Git仓库进行管理。改版的历史记录都会被保存下来。
  • Pull Request:
    开发者向GitHub的仓库推送更改或功能添加,可以通过Pull Request向别人仓库提出申请,请求对方合并。
    PullRequest 送出去后,目标仓库的管理者等人将能够查看Pull Request的内容及其包含的代码更改
    同时,GitHub还提供了对Pull Request和源代码进行讨论的功能。提供此功能可以对行为单位对源代码进行评论,让程序员高效的交流

Git

git的基本操作

  • git init--初始化仓库
  • git status--查看仓库的状态,是一个非常常用的命令,工作数和仓库在被操作的过程中,状态会不停发送变化,通过git status可以查看当前的状态。
  • git add --向暂存区中添加文件,如果只是用Git仓库的工作树创建了文件,那么该文件并不会被计入Git仓库的版本管理对象中,所需我们需要用git add 讲其加入暂存区中。暂存区只是提交之前的一个临时区域
  • git commit--保存仓库的历史记录 通常 命令为 git commit -m xxx -m 后面的参数标示提交的信息
  • git log 查看提交日志
  • git log xxx文件 只显示该目录下的日志,如果是文件名,就会显示该文件的相关日志
  • git log -p 显示提交所带来的改动
  • git log -p xxx文件 显示文件的改动
  • git diff 查看更改前后的差异
  • q 在git命令行中退出,一个q按键

git分支操作

  • git branch 显示分支一览 带*开头的是当前的分支
  • git checkout -b xxx 创建,切换分支
  • git checkout xxx 切换分支
  • git checkout - 切换到上一个分支 "-"替代了分支名,通常master分支作为主分干
  • git merge 合并分支 git merge --no-ff xxx
  • git log --graph 以图表形式查看分支
  • git reset 回退历史版本,使用 git reset --hard xxx(这个提供目标点的哈希值通过git log 等日志查看过去提交的时间点的哈希值)
  • git reflog 命令 以查看当前仓库的操作日志 gitlog只能查看当前状态为终点的历史日志

![LZ4MYR@0}99T7]XON2GBTH1.png](http://upload-images.jianshu.io/upload_images/2326281-2a6b5a90baa7c681.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

这里写图片描述
  • git commit -am 将add 和commit命令结合起来 git commit -am xxx备注
  • git push -u origin master(xxxx) 推送到远程仓库 -u 可以在推送的同时,将origin仓库的xxx作为本地仓库的当前分支的上游。
  • 以后 通过 git pull 就可以从远程仓库获取内容
  • git clone 克隆
  • git checkout -b xxx origin/xxx 将远端中xxx分支获取到本地仓库
  • git pull 获取

GitHub的功能

点击头像


这里写图片描述
  • Explore:GitHub公司特别推荐的软件,按语音筛选本日/周/月的热门仓库/开发者(里面好多都是高大上的东西)
  • integrations:GitHub 功能集成工具(包括 Travis CI、Code Climate、Gitter 等)
Alt text
  • Pull Requeste 显示用户已经进行过的Pull Request
  • Issues 查看用户拥有的权限的仓库 或分配给自己的Issue。用户同时进多个项目时,可以在这里一并查看
  • Repositories you contribute to:显示用户做个贡献的仓库。
  • Your Repositories 用户自己的仓库,根据更新时间顺序来拍

这是安卓牛人的github 作为模板案例


Alt text
  • Popular repositories (好像是在看个人界面才看的到) 显示公开仓库中受欢迎,拥有大量Star的部热门仓库
  • contributions 活跃度 一格标示一天 ,记录用户对拥有读取权限的仓库的大致贡献度。贡献度的衡量标准包括发送Pull Request的次数,写Issue的次数,进行提交的次数等。颜色越深贡献度越高
  • Contribution Activity,按照时间顺序显示具体贡献活动的链接。
  • Public Activity 显示该用户公开活动。指用户做了什么,比如仓库的提交或者pull Request 等,大量的公开信息都会记录在这里。
  • Repositories 显示该用户公开的仓库。Fork来的仓库也会显示在这
这里写图片描述

仓库的名称,语言,简要说明,最终更新日期都会出现在这里,星形图案旁边的数字表示star的人数,在旁边表示Fork数,背景显示的图标表示仓库的更新频率,横向为时间轴,右侧为最新时间。色块越高,仓库的更新频率越高

仓库

这里写图片描述

仓库的url https://github.com/用户名/仓库名/ (如 https://github.com/alibaba/fastjson

  • Code 显示该仓库的文件列表
  • watch 这个按钮可以watch该仓库。今后该仓库的更新信会显示在用户的公开活动中。start 这个数越高 越受欢迎,watch和start的区别在于watch之后该仓库的相关信息会在通知中显示,让用户可以跟踪仓库的内容而Star更像是书签,让用户将来可以在Star标记的列表中找到该仓库。
  • Fork 这个数字越大,表示参与这个仓库的人越多
  • Issus 用户BUG报告,功能添加,方向性讨论等,将这些以Issue形式进行管理。Pull Request时也会创建Issue。判断显示的数字是当前处于Open状态的issue 数


    Alt text
  • Pull Requests 可以查看列表中并管理Pull Request 。代码更改和讨论都在这里进行。判断显示的数字表示尚未Close的Pull Request
  • Wiki常用与记录开发者共享的信息或软件文档
  • Pulse显示该仓库最近的活动信息。
  • Graphs 通过图表的心事显示该仓库的各项指标
  • clone or download 下载或者clone项目
  • commit 多少次提交 点击可以查看提交历史
  • branches 可以查看仓库的分支列表
  • releases 显示仓库的标签。同时将标签加入时的文件以归档形式(ZIP,tar.gz)下载到本地。软件在版本升级时都会打标签,如果需要特定版本的文件,可以从这里查找
  • contributors 显示该仓库进行提交的程序员名单。如果你对该仓库发送过Pull Request并且被采纳,那么在这里就能找到自己的名字。
  • Branch:master 可以点击切换到不同分支去查看差别

查看文件的差别

这里写图片描述

我们点击左侧行号某一行就会成黄色,同时url末尾会添加#Lxx 如果我要查看第99到101,查看url末尾地址
Alt text

如果我们要快速查看某个文件 我们在最开始的界面 按住键盘的T,然后搜索关键字 就很快搜索到了

Alt text

  • Blame 可以能够按行显示最新提交的信息
  • History可以查看该文件的历史记录

在GitHub 上直接修改url可以给用户已多种形式查看差别
查看分支的区别

Alt text

查看几天的区别
Alt text

https://github.com/alibaba/fastjson/compare/maters@{7.day.ago}...master

  • day
  • week
  • month
  • year

指定期间可以使用四个单位。如果差别过大则不会列出所有提交只显示最近的一部分

Lssue

开发者为了跟踪Bug及软件相关讨论,进而方便管理,创建了Issue。
GitHub的Issue的评论可以使用GFM的语法进行描述


Alt text

具体可以自己去尝试
Issue可以添加标签进行管理,点击标签,可以只显示该标签的Issue,标签可以自由从创建,BUG,任务备忘等分类。
如果Issue积累到一定数量,可以考虑设置标签
在Issue下有个milestones 可以设置里程碑(个人理解版本,管理任务,查看某个版本下还有剩余的Issue)

Pull Request

是用户修改代码想对付查看发送采纳请求的功能,也是GitHub的核心功能,


Alt text
  • conversation标签页,可以查看当前Pull Request相关的评论以及提交的历史记录,人民可以在这里评论互相探讨。
  • Files Changed 可以查看当前Pull Request更改的文件内容的前后差别

Pull Request流程

  1. Fork 点击Fork创建自己的仓库,新建仓库
  2. clone
  3. branch
  4. 添加代码
  5. 提交修改
  6. 创建远程分支
  7. 来到github 页面查看自己提交的分支, 查看分支差别页面, 有个creat pull Request 按钮 随后填写相应的表单
  8. 来到github页面 点击pull Request 查看自己提交的状态

接受Pull Request

  1. 代码审查
  2. 查看图片的区别 https://github.com/blog/817-behold-image-view-modes官方博客,可以对图片进行对比

Git Flow

以部署为中心的开发模式
流程

  1. 令master分支常保持部署的状态
  2. 进行新的作业时要从master分支创建新分支,新分支名称要具有描述性
  3. 在新建的本地仓库分支中进行提交
  4. 在GitHub端仓库创建同名分支 ,定期push
  5. 需要帮助或反馈时创建Pull Request,以Pull Request进行交流
  6. 让其他开发者进行审查,确认作业完成后与master分支合并
  7. 与master分支合并后立刻部署
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容