Git学习(一)
0x00 前言
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
以前写的代码、文档之类的东西用完之后就被我无情抛弃了,以后要用的时候又需要重新写,麻烦,所以就想到了使用Git,将自己的文档、代码托管到GitHub上。
0x01 安装Git
在Windows上使用Git,直接从官网上下载安装程序,然后默认选项安装即可。
安装完成后,鼠标右键,出现如下图,说明Git安装成功!
安装完成后,还需要最后一步设置,鼠标右键“Git bash here”,在命令行输入:
1 | $ git config --global user.name "Your Name" |
注意: git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
0x02 创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,可以理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的创建、修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
创建一个版本库也很简单,选择一个合适的地方,创建一个空目录
1 | $ mkdir learnGit |
通过git init
命令把这个目录变成Git可以管理的仓库
1 | $ git init |
这样仓库就建好了,但是里面是空的,其实当前目录下多了一个.git
文件夹,这个目录是Git用来跟踪管理版本库的,千万不要乱动。
如果没有看到.git文件夹,可能是你把它隐藏了,可以用ls -la
查看
0x03 三个工作区
- 工作区: 指本地创建的目录,主要保存本地文件
- 暂存区:
git add
之后文件进入的地方,此时文件还没有进入版本库 - 版本库: 即仓库,
git commit
之后,文件从暂存区进入仓库
0x04 小试牛刀
我们先编写一个README.txt
文件,内容如下:
1 | Git is a version control system. |
一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git找不到这个文件。
第一步,用git add <file>
把文件添加到仓库
1 | $ git add README.txt |
执行完后没有任何回显,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
第二步,用git commit
提交文件到仓库
1 | $ git commit -m "add a new README.txt file" |
-m
后面是本次提交的说明,可以输入任何内容,也可以不输。
说明: git add
一次添加一个文件,git commit
可以把多次add的文件一次性提交。
0x05 总结
今天主要学习如下:
初始化一个Git仓库,使用git init
命令。
添加文件到Git仓库,分两步:
- 使用命令git add
,注意,可反复多次使用,添加多个文件; - 使用命令git commit -m
,完成。
这里要特别强调一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,前面我们举的例子只是为了演示,如果要真正使用版本控制系统,就要以纯文本方式编写文件。
因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。