《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也是艰难……