为什么会有本文?

很久以前,在我刚刚接触计算机的时候,就非常贪心,想把自己所有的文件保存下来,为了以后会“用得到”。后来有了网盘之类的东西,但是我不满足于仅仅保存一个文件。对其中的同步逻辑不明白,怕把文件同步成了不想要的版本。在我认识了Git之后,这个问题得到了完美的解决。

Git是一个版本控制的工具,是林纳斯开发,用于开发过程中项目的版本控制的一个工具。他能记录下项目的每一个提交,提交之间的变更。你可以随意的查看项目的每一次版本。还支持多人开发, 每个人的提交都一目了然。这样一个好东西也可以用来管理自己的文档,例如写一个word,或者一个ppt,将他变成一个项目,记录下项目的每一个进度,使自己的工作更加清晰明了。

有关于Git的教程,网络上已经有很多了。本文只会介绍Git,说明Git的功能,常用的命令,然后提供更多更详细的教程的链接,避免造轮子。

Why Git?

首先,Git的读音是/git/,汉字类似于“各异特”,不是“吉特”。

版本控制工具不仅仅只有Git,像流行的还有CVS,SVN等。但是这两个是“集中式版本控制系统”。而Git是一个“分布式版本控制系统”。有什么区别呢?集中式要求版本控制存放在一个服务器上,每一次工作都需要从服务器上拉取版本来进行工作。而分布式是在每一个用户的终端上都保存有一个版本仓库,不同的开发者之间可以用pull和push操作进行同步,也可以向主服务器进行同步。那么优势就很明显了——每个用户都有一个独立的版本库,拥有完全的权限,不用联网就可以工作。此外,Git还有快速,省心,可退回任意版本等优点,所以它是目前最流行的版本控制工具。

安装Git

Git始于Linux,但是不止于Linux,现在Git支持Linux,Mac和Windows等主流平台。

在Linux或者Mac的终端下,可以使用brew等工具进行安装。在windows下,只要从https://gitforwindows.org/下载,然后默认安装就好了。

第一个仓库

创建一个Git仓库非常简单。首先,进入到一个空目录,然后对项目进行初始化就可以了。但是由于我们是第一次操作,所以需要对Git进行一些初始化的动作。

$git config --global user.name "laixintao"
$git config --global user.email "lai****tao1555@XXX.com"

多人协作的时候,是靠邮件来识别提交者的。在Github,不管你的用户名是什么,只根据邮箱来匹配提交者,亲测。所以邮箱一定要设定成自己的,否则你的工作成果就要打上别人的名字啦!

$ cd /path/to/ty/workspace
$ mkdir myGit
$ cd myGit
$ git init
Initialized empty Git repository in /path/to/ty/workspace/myGit.git/

这样,第一个项目——myGit就建立好了。

在本地的操作

你可以理解为,Git的工作目录和版本库是在一起的。在本地有一个.git文件,保存了你的提交历史。那么,在本地进行的操作如何提交呢?

首先,要理解暂存区的概念。简单来说,暂存区是介于工作区和版本库之间的存在。在本地的操作需要添加到暂存区,用commit命令提交的时候,会将暂存区的内容提交到版本库。当然了,版本库,暂存区,和工作区之间可以进行同步。

工作区的文件如果没有被追踪,是不能提交的,首先,将工作区的内容添加到暂存区:

$ git add <filename>

也可以add所有文件加入到暂存区,然后一次提交。但是非常不推荐这样做,因为这会使版本库乱掉,版本控制就失去了他的意义。

每一个提交都要有一个说明,在查阅的时候以便得知每一次提交做的是什么。

$ git commit -m "This is my first commit."

查看此时的工作区状态命令:

$ git status -s

其中,-s参数是显示精简信息,在显示的信息中,每一个工作区有改动的文件前面都会有两个字母:

  • ??——新文件没有被追踪;
  • 空M——这个文件的修改没有被追踪;
  • A空——有一个新文件被追踪还没有被添加;
  • M空——有一个文件修改,已经被追踪,没有被添加。

被追踪即是添加到工作区。

还可以查看提交记录:

$ git log 
$ git log --graph  --pretty=oneline

第二行可以用图表的形式查看。

回退到上一个版本:

$ git reset --hard HEAD^

For more infomation:

结语,这么快就结束了吗?哈哈,没有。相信你对版本控制已经有一个印象了吧?接下来的远程操作部分,已经有关git更多更方便的操作,我会提供一些好博主的链接供参考。

学会Git之后,你就可以轻松的管理你的项目了。将来,你可以把你所有的东西变成项目——你写的博客是项目,论文是一个项目,做的作业时一个项目。这样之后,可以纵览项目的进程,变化,发展,整个人生也可以看做一个项目。


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

Python字符串和正则表达式 上一篇
详解 Python 的 “==” 和 “is” 下一篇