安辰

stay hungry stay foolish

初始化配置

我们安装了git之后,都要先配置以下git工作环境。git提供了git config的工具,专门用来配置或读取相应的工作环境变量。

配置:

1
2
git config --global user.name "hellomypastor"
git config --global user.email 18013963220@163.com

查看配置:

1
2
git config --list //方式一
git config -l //方式二

这些配置一般会存在三个地方:

  • /etc/gitconfig:全局配置(针对所有用户)
  • ~/.gitconfig:全局配置(针对某个用户)
  • .git/config:局部配置(针对某个目录/项目)

VCS

版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如svn,git等。

DVCS

分布式版本控制系统(Distributed Version Control System),软件开发过程中,要解决多人协作的问题,需要有一个版本控制系统,用来合并和管理多人对同一个项目的开发和修改。版本控制有两种方式,一种是集中式版本控制系统,顾名思义,是把代码的管理和同步放在同一个服务器端来进行,如CVS,SVN,由于有完善的权限系统,以及统一的服务端,适合商业软件的开发;而分布式版本控制系统,则相当于把集中式版本控制系统的服务端和客户端都交给参与开发的客户端来保管,只有需要不同开发者合并代码时,才需要一个中转站来完成。

Git

Git是一款免费的、开源的分布式版本控制系统,旨在快速高效地处理无论规模大小的任何软件工程。Git很容易学习,且小步快走,有着闪电般的性能。它超越了SCM工具,比如SVN、CVS、Perforce、ClearCase等,具体体现在方便的本地分支管理、方便的暂存区、并行工作流等。

每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。

Git 是由“Linux之父” Linus Torvalds 创建的。因为他发现找不到满意的方案来管理 Linux Kernel 联合开发的版本控制,就自己写了Git。

不知道大家有没有这样的经历呢?

在大学期间,我们经常会有课程设计,比如C++程序设计,比如设计一个俄罗斯方块程序,那么我们会怎么做呢?先在自己电脑上开发调试好,然后到了机房给老师演示到时候呢,用U盘拷到机房的电脑上,然后给老师演示,后来想了想,其实这样也没什么毛病,毕竟一个人。

后来随着课程设计越来越大、越来越难,一个人几乎不能完成(大神可以^_^),那么就几个人一组啦,那么如何协作呢?如果是两个人,那么可以在一台电脑上开发(结对开发),多个人的时候呢?用U盘?呵呵哒…于是我们想到了用版本控制,用什么好呢?

Svn?Github?Gitlab?GitOsChina(当时还是http://git.oschina.net,现在已经变成了https://gitee.com)?

后来决定用GitOsChina,因为免费,且可以创建私有仓库,那么问题来了,如何说服大家用Git呢?

…(此处省略1万字)

我费了十分大的力气说服他们使用 Git并教会他们基本的操作。但是使用Git不可避免的会产生编辑冲突,可是大家都害怕冲突、害怕解决冲突,可能是觉得解决冲突太麻烦了,解决不好还可能会丢失代码,说出来都是血和泪啊。

那么有没有好的方法或者是好的工具能克服解决Git冲突的恐惧症呢?

HTTP

HTTP,HyperText Transfer Protocol,即超文本传输协议。1999年6月定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1,HTTP/2标准于2015年5月正是发表。

HTTP/2与HTTP1.1的区别

  • HTTP/2采用二进制格式而非文本格式
  • 完全的多路复用
  • 使用头压缩,降低了开销
  • 让服务器可以主动推送(push)数据到客户端
0%