GitHub与Git

GitHub入门与实践总结
什么是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](https://imgconvert.csdnimg.cn/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzIzMjYyODEtMmE2YjVhOTBiYWE3YzY4MS5wbmc?x-oss-process=image/format,png)

这里写图片描述

  • 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分支合并后立刻部署
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值