前言
记录自己阅读《GitHub 入门与实践》这本书并以此学习Git和GitHub使用的相关思考和笔记。
更新记录
- 2016.11.27 新建笔记,增加第一章,第二章内容。
第一章 GitHub的世界
- GitHub吉祥物: octocat,萌萌的章鱼猫。
- Git与GitHub的简单区别:
Git是版本管理的工具,提交代码或者文档到Git仓库,以便进行管理。
GitHub就是在网络上提供的一个Git仓库,使用Git对其进行管理。换言之,网络上同样也可以有其他Git仓库,例如国内的Gitcafe,很多用Git进行代码管理的公司也会在内网搭建自己的Git私服仓库。 - GitHub作为公开的,公共的Git仓库,为社会化编程和协作提供了环境。
第二章 Git导入
- Git是分散型版本管理系统,由Linux的创始人Linus Torvalds在2005年开发的。
- 版本管理:管理更新的历史记录,记录修改的过程,方便回滚到特定阶段,恢复误删除的文件等等。
- 集中型与分散型:
-
集中型代表:Subversion(即SVN)
仓库集中存放于服务器,只存在一个仓库,便于管理。缺点也是由于只集中在一个仓库,一旦出现故障,源码就容易丢失。
开发者A ----(commit/checkout)--- Subversion --- (commit/checkout) --- 开发者B -
分散型代表:Git
分散型拥有多个仓库,仓库与仓库之间通过fork
进行复制,通过pull request
申请合并,每个开发者可以在自己fork的仓库上进行代码修改和提交,然后发起pull request
请求到目标仓库,让该仓库管理者审阅是否拉取合并代码。另外,所有仓库之间也可以直接pull
和push
。
相比于集中型的SVN,Git的工作流程显得更加复杂,代码管理也更加麻烦,但是由于多个仓库的存在,显然避免了SVN的缺点(其实SVN做好服务器数据定时备份也可以达到同样目的)。 - SVN和Git其实是两种不同的版本管理思路,各有优缺点,目前也都有较成熟的解决方案,采用哪一个还是要看具体情况而定。但是有一点,SVN在开发工作中使用起来更为简单,不像Git常常导致新手不知道最新的源码在哪,更新代码时也经常出现冲突问题,给开发增加不少额外成本。
-
集中型代表:Subversion(即SVN)
- Windows下安装Git
- 下载Git For Windows <a href="https://git-for-windows.github.io/index.html">msysGit</a> 写这篇笔记时安装的版本是 2.10.2。
- 一些配置,其他的直接下一步就好了,注意换行符处理选择
Checkout Windows Style
那一项,应该是第四步,没有截到图,不想在windos命令行运行git,所以选择了git bash only。
- Git 初始设置
- 全局设置用户名和邮箱
git config --global user.name 'name'
git config --global user.email 'email'
设置好之后在C盘user文件夹下面找到.gitconfig
文件打开应该可以看到对应的全局设置 - 设置命令输出的颜色,提高可读性
git config --global color.ui auto
- 全局设置用户名和邮箱
第三章 使用GitHub
编写中...