《Github入门与实践》作者: [日] 大塚弘记 译者:支鹏浩/刘斌
 
 

简介
本书从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作,使用GitHub的开发流程以及如何将GitHub引入到企业中。在讲解GitHub的代表功能Pull Request时,本书专门搭建了供各位读者实践的仓库,邀请各位读者进行Pull Request并共同维护。
 
 
      本以为对于github已经算有所了解,通过这本书才发现对其的了解远远还不够。同时因为github界面有过改版,使得书中对githubUI界面部分功能的介绍有所出路,但这并不妨碍我们通过这本书认识到github的某些主要功能和作用。
      此外,关于Git其实现在已经有不少方便的图形化操作工具,像TortoiseGit和VSCode的插件Git Lens 我现在都有使用,但即便这样,Git Bash 的命令行操作我仍然觉得不可替代。
      总之,本书分为git命令和github两大部分,感觉其细致的配图和文字说明真的对英文不好的我来说算是福音。想到现如今git的使用越来越普及 ,如此,决定以自己的方式整理一下书中重要的一些知识点。
 
      _(:з」∠)_这是个很让人想躺的休息日,不过主人翁 蟲咋先生 还是决定今天务必要好好在 Git小姐 那里刷一刷脸!说到脸,蟲咋先生实在还很嫩,也因为这样,面对大名鼎鼎的Git小姐和SVN小姐,蟲咋先生都才初初认识。不过仅此就让蟲咋先生决定毫不犹豫地去追求Git小姐。啧啧,实在是因为觉得SVN小姐虽然也是集万千才华于一身,但其乖巧娇羞的性子让人觉得稍微了解一下她做个朋友就够了,还是Git小姐的活泼大方广于交际更适合蟲咋先生这种闷骚。蟲咋先生都想好了,如果Git小姐问自己为什么喜欢她,他就回答:我很乐于借着Git小姐拉大我的朋友圈!等等等等等
 
      言归正传,蟲咋先生想了下,要刷脸,首先得联络上Git小姐,一番查阅下载安装之后,蟲咋先生还是决定用 GitBash 的方式来联络。
 
1.1 鼠标右键 > 单击选择 “Git Bash Here”,新世界大门即将打开。
 
 
 

      选择好了联络方法,就要展开行动了。Git小姐还不认识蟲咋先生,所以必须要先做一个简单的自我介绍。
1.2.1 初始设置:设置用户名和邮箱
 
$ git config --global user.name "xxx"
$ git config --global user.email "xxxxxx@xxx.com"

  

      蟲咋先生颤巍巍地给Git小姐留言了自己的姓名和联络邮箱,紧张得都要出汗了,生怕自己的信息没能成功传递过去。于是忍不住询问了下GitBash,看到它的反馈才松了一口气。
1.2.2 查看用户名和邮箱
 
 $ git config user.name
$ git config user.email

      所谓条条大道通罗马,光是这样做显然还不够。蟲咋先生这个时候才开始摩拳擦掌要去Git小姐家门口留名晃点!蟲咋先生早已在Git小姐那里露过脸了。现在他想一定要拿出点什么让Git小姐再次注意到自己。
      决定先暗搓搓租下Git小姐小区中的一屋,再思考要怎样展开行动。
 
2.1 设置SSH Key,Github上连接已有仓库时的认证需通过SSH公开密钥来认证。需要先创建公开密钥认证所需的SSH Key并添加至GitHub。
 
$ ssh-keygen -t rsa -C “xxxxxx@xxx.com”

id_rsa文件是私有密钥,id_rsa.pub是公开密钥
2.2.1 添加公开密钥,获取id_rsa.pub的内容
 
$ cat  ~/.ssh/id_rsa.pub

  

2.2.2 添加公开密钥,在Github上点击头像 > Your stars > 进入后点击左侧头像 > 选择 SSH and GPG keys > 点击 New SSH key
 
 
 
2.2.3 在Title中输入适当密钥名称,Key部分黏贴 id_rsa.pub的内容,添加成功后创建账户时所用邮箱会收到一封提示邮件。之后就可以用私人密钥与GitHub进行认证和通信。蟲咋先生顺利找到了房东一番沟通协商,果断将房屋钥匙拿到手了。那么成为了邻里关系,是否可以到Git小姐那里去打个招呼呢。
 
$ ssh -T git@github.com 

      得到了回应的蟲咋先生很是欢喜。w
 
      获得了认证,那么该好好收拾一下自己的屋子了。噌噌噌,蟲咋先生略微整理了一下就开始准备想要给Git小姐的大礼了。
2.3 选择 “New repository” 创建自己的仓库,创建后连接仓库的URL是 https://github.com/用户名/仓库名
 
 
 
2.4 黏贴复制仓库URL地址之后,将仓库clone至本地,使用cd 进入到本地仓库中,这时可以使用 status命令查看仓库状态。
 
$ git clone https://github.com/用户名/仓库名
$ cd 仓库名(及clone到本地的文件夹名称)
$ git status

  

这一段说明当前工作目录很是干净。所有已跟踪文件在上次提交后都未被更改过。而本地也没有出现任何未跟踪状态的新文件。同时,也还显示了当前所在分支是 “master”,此为默认分支名。
 
      想来也是,蟲咋先生刚刚搬进来,自然整个屋子都很干净。那么现在要开始打扫了,首先蟲咋先生把他的第一个大宝贝 start.html 放入了这个名为 CSS-Laboratory这个屋子里,然后重新查看了一番。
2.5.1 添加新文件。将想要提交到仓库的文件放入本地clone下来的文件夹中。这时再使用 status命令查看,就会发现得到了不同的回复。
 
 
 
 
2.5.2当看到上述提示,就应该知道需要使用add命令将新文件加入到暂存区。而后通过commit命令来提交,向github上的远程仓库发出申请,将文件实际保存到仓库历史记录中。最后使用push命令,github上的远程仓库就会被更新。
 
$ git add 文件
$ git commit -m "提交时想要备注的信息"
$ git push

上面的log命令起到的作用是查看提交日志,提交后刷新github网站,找到对应的库。
 
 
 
      对于蟲咋先生来说,今天的一切都是开始。 start 是追求Git小姐的开始,同时也是这一天的结束。下一次,他将拥有的就不仅仅是start了。
 
      上述涵盖了《Github入门与实践》第一章 到 第三章 的重要知识点。
 
      通过《Github入门与实践》这本书,让我觉得Git实在是一位很优雅的女士,她具有非凡的胸怀。让诸多不善表达的程序猿们,以自己独有的方式展现了自己的内心世界的同时切切实实的搭建出了沟通的桥梁。
      由于初识Git,只是对于其社会化编程起到的化学作用不免感慨。其协作形式版本管理等等作用我还并不是有很深的体会。
      在看这本书之前,也有直接使用Git命令做一些操作,有查阅过常用Git命令来做一些试验。但正因为这样,我更觉得这本书作为Git的入门是很适合的,因为它足够浅显。提示着我每一个步骤都会起到一个作用。一步一步,让我在这个过程中理解到了每一个命令它对应的效果。
      曾经使用git命令时遇到过这样一个情况。我add一个文件之后,发现怎么也push不上去。后来才发现是忘记commit了。在看这本书之前,我觉得命令是单一一条,条条对应的。随着跟着步骤来走,才发现,虽然有些命令发出以后能够得到直接回复。但是有些命令是一个相连的步骤缺一不可。就像上述从SSH Key到最后push到远程仓库。在这个中间可以穿插诸多不同的命令。但是要实现push,有一些步骤绝不能丢。
      此外 git staus 和git log 命令我在看这本书之前用的并不多。现在才发现,有时我们发出一个命令,GitBash上并不会 就直接给出回复。要善用他们,才能知道自己处于哪里,下一步,需要做什么。
      下一次读书笔记就是整理该书 第四章的内容,也就是蟲咋先生开始正式使出手段追求Git小姐了。TAT也是艰难……
 
 

《Github入门与实践》读书笔记 蟲咋先生的追求之旅(上)的更多相关文章

  1. GitHub入门与实践 读书笔记三:(1)GitHub账户注册教程

    第一步:进入GitHub官网,官网地址:https://github.com/ 第二步:点击Sign up for GitHub 1.昵称一栏:每次在你输入昵称之后,都会检查是否已经被注册.如果被注册 ...

  2. GitHub入门与实践 读书笔记二:Git的导入

    1.诞生背景 Linux的创始人Linus Torvalds 在2005年开发了Git的原型程序,后随着众多开发者的共同努力,现在他已经被大量的程序员采用. 2.什么是版本管理 版本管理:管理软件在开 ...

  3. GitHub入门与实践 读书笔记一:欢迎来到GitHubde世界

    1.什么是GitHub GitHubshi为开发者提供Git仓库的托管服务.除此之外,还为开发者提供能帮助提高代码效率和品质的功能. GitHub和Git的区别? Git是源码仓库而GitHub是在网 ...

  4. Unity Shader入门精要读书笔记(一)序章

    本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...

  5. Unity Shader入门精要读书笔记(二)UnityShader概述

    第三章<UnityShader概述>的读书笔记: 1.Unity Shader模板提供了几种选择: 标准光照模型(新添加的基于物理的渲染方法) 不含光照的基本的顶点.片元着色器 屏幕后处理 ...

  6. GitHub入门与实践

    基本命令 git status 工作区状态 git add git commint 暂存区 git push gitHub客户端 下载网址:https://desktop.github.com/ 解决 ...

  7. 《VS2010/MFC编程入门教程》——读书笔记

    推荐两个比较好的学习网站:http://v.dxsbb.com/jisuanji/555/ http://www.jizhuomi.com/software/257.html MFC全称Microso ...

  8. JavaScript设计模式与开发实践——读书笔记1.高阶函数(下)

    上部分主要介绍高阶函数的常见形式,本部分将着重介绍高阶函数的高级应用. 1.currying currying指的是函数柯里化,又称部分求值.一个currying的函数会先接受一些参数,但不立即求值, ...

  9. JavaScript设计模式与开发实践——读书笔记1.高阶函数(上)

    说来惭愧,4个多月未更新了.4月份以后就开始忙起来了,论文.毕设.毕业旅行等七七八八的事情占据了很多时间,毕业之后开始忙碌的工作,这期间一直想写博客,但是一直没能静下心写.这段时间在看<Java ...

随机推荐

  1. python识别验证码——一般的数字加字母验证码识别

    1.验证码的识别是有针对性的,不同的系统.应用的验证码区别有大有小,只要处理好图片,利用好pytesseract,一般的验证码都可以识别 2.我在识别验证码的路上走了很多弯路,重点应该放在怎么把图片处 ...

  2. webpack2使用ch6-babel使用 处理es6 优化编译速度

    1 目录结构 安装依赖 cnpm install --save-dev babel-loader babel-core babel-preset-env babel-preset-latest &qu ...

  3. 更新——Canvas画布动画效果之实现倒计时

    Hello,大家好! 小W复活啦!继续欢乐的给大家更博,输送新知识~~ 不开玩笑啦!秒进正题~~~ 上次更博,小W给大家介绍了Canvas画布的基础部分,以及实现了一个由7*10点阵图显示的倒计时的基 ...

  4. break和continue 的区别

    区别 break和continue都可在循环语句里面使用,也都可以控制外层的循环.但是continue只能在循环语句里面使用,break也可以使用在switch语句里面. break具体作用在循环语句 ...

  5. 小程序1_app.json配置

    1 window配置: window属性主要用于设置小程序的状态栏,导航条,标题,窗口背景色 直接在app.json里配置即可 2 tabBar底部导航 一般程序都会有底部导航栏,这个同样只要在app ...

  6. adb获取Android性能数据

    环境:Android测试环境 搭建Android测试环境: 1.下载AndroidSDK: 2.配置环境变量: (1).ANDROID_HOME (2).ANDROID_HOME-TOOLS (3). ...

  7. 【JDK1.8】JDK1.8集合源码阅读——总章

    一.前言 今天开始阅读jdk1.8的集合部分,平时在写项目的时候,用到的最多的部分可能就是Java的集合框架,通过阅读集合框架源码,了解其内部的数据结构实现,能够深入理解各个集合的性能特性,并且能够帮 ...

  8. Unix时代的开创者Ken Thompson

    自图灵奖诞生以来,其获得者一直都是计算机领域的科学家与学者,而在所有这些界的图灵奖中只有唯一的一届有个例外,那就是Ken Thompson与Dennis M. Ritchie,他们都是计算机软件工程师 ...

  9. 队列(存储结构双端链表)--Java实现

    /*用链表实现的队列--使用的是双端链表 *注意:空指针错误肯定是引用没有指向对象 * */ public class MyLinkedQueue { private MyFirstAndLastLi ...

  10. *.do和*.action的区别

    最近发现个问题,都是SpringMVC 请求地址有的是*.do有的是*.action,想了半天区别没想出来. struts早期的1版本,以.do为后缀.同时spring的MVC也是以.do为后缀.几年 ...