• GitHub入门与实践


    GitHub入门与实践

    本书结构

    1 欢迎来到GitHub的世界

    1.1 什么是 GitHub

    GitHub 公司与 octocat
    并不只是 Git 仓库的托管服务
    GitHub 的使用情况

    1.2 使用 GitHub 会带来哪些变化

    协作形式变化
    ……在开发者之间引发化学反应的 Pull Request
    ……对特定用户进行评论
    ……GitHub Flavored Markdown
    能看到更多其他团队的软件
    与开源软件相同的开发模式

    1.3 社会化编程

    1.4 为什么需要社会化编程

    不要闭目塞听,要接触不同的文化
    会写代码的程序员更受青睐
    GitHub 最大的特征是“面向人”

    1.5 GitHub 提供的主要功能

    Git 仓库
    Organization
    Issue
    Wiki
    Pull Request

    1.6 小结

    参考资料

    2 Git的导入

    2.1 诞生背景

    2.2 什么是版本管理

    集中型与分散型
    ……集中型
    ……分散型
    集中型与分散型哪个更好

    2.3 安装

    Mac 与 Linux
    Windows
    ……组件的选择
    ……设置环境变量
    ……换行符的处理
    ……Git Bash
    本书所用的环境

    2.4 初始设置

    设置姓名和邮箱地址
    提高命令输出的可读性

    2.5 小结

    3 使用GitHub的前期准备

    3.1 使用前的准备

    创建账户
    设置头像
    设置 SSH Key
    添加公开密钥
    使用社区功能

    3.2 实际动手使用

    创建仓库
    ……Repository name
    ……Description
    ……Public、Private
    ……Initialize this repository with a README
    ……Add .gitignore
    ……Add a license
    连接仓库
    ……README.md
    ……GitHub Flavored Markdown
    公开代码
    ……clone 已有仓库
    ……编写代码
    ……提交
    ……进行 push

    3.3 小结

    4 通过实际操作学习Git

    4.1 基本操作

    git init——初始化仓库
    git status——查看仓库的状态
    git add——向暂存区中添加文件
    git commit——保存仓库的历史记录
    ……记述一行提交信息
    ……记述详细提交信息
    ……中止提交
    ……查看提交后的状态
    git log——查看提交日志
    ……只显示提交信息的第一行
    ……只显示指定目录、文件的日志
    ……显示文件的改动
    git diff——查看更改前后的差别
    ……查看工作树和暂存区的差别
    ……查看工作树和最新提交的差别

    4.2 分支的操作

    git branch——显示分支一览表
    git checkout -b——创建、切换分支
    ……切换到 feature-A 分支并进行提交
    ……切换到 master 分支
    ……切换回上一个分支
    特性分支
    主干分支
    git merge——合并分支
    git log --graph——以图表形式查看分支

    4.3 更改提交的操作

    git reset——回溯历史版本
    ……回溯到创建 feature-A 分支前
    ……创建 fix-B 分支
    ……推进至 feature-A 分支合并后的状态
    消除冲突
    ……查看冲突部分并将其解决
    ……提交解决后的结果
    git commit --amend——修改提交信息
    git rebase -i——压缩历史
    ……创建 feature-C 分支
    ……修正拼写错误
    ……更改历史
    ……合并至 master 分支

    4.4 推送至远程仓库

    git remote add——添加远程仓库
    git push——推送至远程仓库
    ……推送至 master 分支
    ……推送至 master 以外的分支

    4.5 从远程仓库获取

    git clone——获取远程仓库
    ……获取远程仓库
    ……获取远程的 feature-D 分支
    ……向本地的 feature-D 分支提交更改
    ……推送 feature-D 分支
    git pull——获取最新的远程仓库分支

    4.6 帮助大家深入理解 Git 的资料

    Pro Git
    LearnGitBranching
    tryGit

    4.7 小结

    5 详细解说GitHub的功能

    5.1 键盘快捷键

    5.2 工具栏

    关于 UI
    ……2 Notifications
    ……3搜索窗口
    ……4 Explore
    ……5 Gist
    ……6 Blog
    ……7 Help
    ……8头像、用户名
    ……9 Create a new...
    ……10 Account settings
    ……11 Sign out

    5.3 控制面板

    关于 UI
    ……1 News Feed
    ……2 Pull Requests
    ……3 Issues
    ……4 Stars
    ……5 Broadcast
    ……6 Repositories you contribute to
    ……7 Your Repositories

    5.4 个人信息

    关于 UI
    ……1用户信息
    ……3 Repositories contributed to
    ……4 Public contributions
    ……5 Contribution Activity
    ……6 Repositories
    ……7 Public Activity

    5.5 仓库

    关于 UI
    ……1用户名(组织名)/仓库名
    ……2 Watch/Star/Fork
    ……3 Code
    ……4 Issue
    ……5 Pull Requests
    ……6 Wiki
    ……7 Pulse
    ……8 Graphs
    ……9 Network
    ……10 Settings
    ……11 SSH clone URL
    ……12 Clone in Desktop
    ……13 Download ZIP
    ……a commits
    ……b branches
    ……c releases
    ……d contributors
    ……e Compare and review
    ……f branch
    ……g path
    ……h Fork this project and Create a new file
    ……i files
    文件的相关操作
    查看差别
    ……查看分支间的差别
    ……查看与几天前的差别
    ……查看与指定日期之间的差别

    5.6 Issue

    简洁且表现力丰富的描述方法
    ……语法高亮
    ……添加图片
    添加标签以便整理
    添加里程碑以便管理
    Tasklist 语法
    通过提交信息操作 Issue
    ……在相关 Issue 中显示提交
    ……Close Issue
    将特定的 Issue 转换为 Pull Request

    5.7 Pull Request

    Conversation
    Commits
    Files Changed

    5.8 Wiki

    Pages
    History

    5.9 Pulse

    active pull requests
    active issue
    commits
    Releases published
    Unresolved Conversations

    5.10 Graphs

    Contributors
    Commit Activity
    Punchcard

    5.11 Network

    5.12 Settings

    Options
    ……1 Settings
    ……2 Features
    ……3 GitHub Pages
    ……4 Danger Zone
    Collaborators
    Webhooks and Services
    Deploy Keys

    5.13 Notifications

    5.14 其他功能

    GitHub Pages
    GitHub Jobs
    GitHub Enterprise
    GitHub API

    5.15 小结

    6 尝试Pull Request

    6.1 Pull Request 的概要

    什么是 Pull Request
    Pull Request 的流程

    6.2 发送 Pull Request 前的准备

    查看要修正的源代码
    Fork
    clone
    branch
    ……为何要在特性分支中进行作业
    ……确认分支
    ……创建特性分支
    添加代码
    提交修改
    创建远程分支

    6.3 发送 Pull Request

    6.4 让 Pull Request 更加有效的方法

    在开发过程中发送 Pull Request 进行讨论
    明确标出“正在开发过程中”
    不进行 Fork 直接从分支发送 Pull Request

    6.5 仓库的维护

    仓库的 Fork 与 clone
    给原仓库设置名称
    获取最新数据

    6.6 小结

    7 接收Pull Request

    7.1 采纳 Pull Request 的方法

    7.2 采纳 Pull Request 前的准备

    代码审查
    查看图片的差别
    ……2-up
    ……Swipe
    ……Onion Skin
    ……Difference4
    在本地开发环境中反映 Pull Request 的内容
    ……将接收方的本地仓库更新至最新状态
    ……获取发送方的远程仓库
    ……创建用于检查的分支
    ……合并
    ……删除分支

    7.3 采纳 Pull Request

    合并到主分支
    push 修改内容

    7.4 小结

    8 与GitHub相互协作的工具及服务

    8.1 hub 命令

    概要
    安装
    ……安装
    ……确认运行情况
    ……设置别名
    ……实现 shell 上的功能补全
    ……~/.config/hub
    命令
    ……hub clone
    ……hub remote add
    ……hub fetch
    ……hub cherry-pick
    ……hub fork
    ……hub pull-request
    ……hub checkout
    ……hub create
    ……hub push
    ……hub browse
    ……hub compare

    8.2 Travis CI

    概要
    实际尝试
    ……编写配置文件
    ……检测配置文件是否有问题
    ……与 GitHub 集成
    ……将 Travis CI 的结果添加至 README.md

    8.3 Coveralls

    概要
    安装
    ……注册
    ……添加对象仓库
    ……编写配置文件
    ……添加 gem
    ……查看报告

    8.4 Gemnasium

    8.5 Code Climate

    8.6 Jenkins

    概要
    安装
    创建 bot 账户
    bot 账户的权限设置
    ……对象为个人账户时
    ……对象为 Organization 账户时
    ……检查设置
    给 Jenkins 设置 SSH 密钥
    ……初次使用 Jenkins 时
    ……已经在使用 Jenkins 时
    GitHub pull request builder plugin 的安装
    Git plugin 的设置
    Github Pull Requests Builder 的设置
    ……Github server api URL
    ……Access Token
    ……Admin list
    job 的创建与设置
    ……GitHub project
    ……源码管理
    ……构建触发器
    ……构建
    通知结果
    ……测试执行中的状态
    ……Failed
    ……All is well
    ……commit status
    通过评论进行控制
    ……执行任务
    ……添加至 White list
    ……重新执行任务
    ……变更指定评论

    8.7 小结

    9 使用GitHub的开发流程

    9.1 团队使用 GitHub 时的注意事项

    一切从简
    ……项目管理工具与 GitHub 的区别
    ……项目管理工具与 GitHub 相异的原因
    不 Fork 仓库的方法

    9.2 GitHub Flow——以部署为中心的开发模式

    9.3 GitHub Flow 的流程

    随时部署,没有发布的概念
    进行新的作业时要从 master 分支创建新分支
    在新创建的分支中进行提交
    定期 push
    使用 Pull Request
    务必让其他开发者进行审查
    合并后立刻部署

    9.4 实践 GitHub Flow 的前提条件

    部署作业完全自动化
    ……使用部署工具
    ……通过 Web 界面进行部署的工具
    ……导入开发时的注意事项
    重视测试
    ……让测试自动化
    ……编写测试代码,通过全部测试
    ……维护测试代码

    9.5 模拟体验 GitHub Flow

    Fizzbuzz 的说明
    添加新功能
    创建新的分支
    ……如果尚未 clone 仓库
    ……如果之前 clone 过仓库
    ……创建特性分支
    实现新功能
    创建 Pull Request
    接收反馈
    修正缩进
    添加测试
    培育 Pull Request
    Pull Request 被合并

    9.6 团队实践 GitHub Flow 时的几点建议

    减小 Pull Request 的体积
    准备可供试运行的环境
    不要让 Pull Request 中有太多反馈
    不要积攒 Pull Request

    9.7 GitHub Flow 的小结

    9.8 Git Flow——以发布为中心的开发模式

    便于理解的标准流程
    有时显得过于复杂

    9.9 导入 Git Flow 前的准备

    安装 git-flow
    ……Mac 下的安装
    ……Linux 下的安装
    ……确认运行状况
    仓库的初始设置
    ……创建仓库
    ……进行 git flow 的初始设置
    ……在远程仓库中也创建 develop 分支

    9.10 模拟体验 Git Flow

    master 分支与 develop 分支的区别
    ……master 分支
    ……develop 分支
    在 feature 中进行的工作
    ……创建分支
    ……在分支中进行作业
    发送 Pull Request
    通过代码审查提高代码质量
    更新本地的 develop 分支
    在 release 分支中进行的工作
    ……创建分支
    ……分支内的工作
    ……进行发布与合并
    ……查看版本标签
    更新到远程仓库
    在 hotfix 分支中进行的工作
    ……创建分支
    ……创建标签和进行发布
    ……从 hotfix 分支合并至 develop 分支

    9.11 Git Flow 的小结

    10 将GitHub应用到企业

    10.1 将世界标准的开发环境引入企业现场

    企业引入 GitHub 的好处
    使用 Organization
    确认 Github 的安全性
    注意维护时间
    查看故障信息

    10.2 GitHub Enterprise

    概述
    引入的好处
    引入的弊端
    适合引入 GitHub Enterprise 的几种情况
    ……源代码不可外传
    ……希望维护与故障时间可控

    10.3 能实现 Git 托管的软件

    10.4 小结

    附录 A 支持GitHub的GUI客户端

    A.1 GitHub for Mac,GitHub for Windows

    A.2 SourceTree

    附录 B 通过Gist轻松实现代码共享

    B.1 Gist 的特点

    B.2 创建 Gist

    UI 讲解
    ……1 Gist description...
    ……2 name this file...
    ……3 language
    ……4 ACE Editor
    ……5文件
    ……6 Add another File
    ……7 Create Secret Gist
    ……8 Create Public Gist

    B.3 查看 Gist

    Gist 的菜单
    ……1 Gist Detail
    ……2 Revisions
    ……3 Download Gist
    ……4 Clone this gist
    ……5 Embed this gist
    文件的菜单

    B.4 Your Gists

    B.5 小结

    看完了

    思维导图

    GitHub入门与实践

    防止博客图床图片失效,防止图片源站外链:

    http://www.processon.com/chart_image/5e5b2ab1e4b0d4dc8776c0a1.png)

    思维导图在线编辑链接:

    https://www.processon.com/view/5e5b2ab1e4b0d4dc8776c09e

  • 相关阅读:
    【bzoj3211】花神游历各国
    四维偏序(K-D-Tree+rebuild)
    【bzoj3295】动态逆序对
    BZOJ3444: 最后的晚餐
    BZOJ3091: 城市旅行
    BestCoder Round #72
    BZOJ2733: [HNOI2012]永无乡
    wc2016总结
    BZOJ4381: [POI2015]Odwiedziny
    BZOJ4196: [Noi2015]软件包管理器
  • 原文地址:https://www.cnblogs.com/jingle1267/p/12778741.html
Copyright © 2020-2023  润新知