Git使用详解

Git简介

Git发展史

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:

  • 速度

  • 简单的设计

  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)

  • 完全分布式

  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。

Git的两大特点

  • 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。

  • 分布式:Git是一个分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。

安装与配置

  • 安装
sudo apt-get install git  // ubuntu
brew install git  // Mac

查看是否安装Git只需要在命令行输入git命令,如果出现git的帮助信息则表示已经安装。
uploading-image-918216.png


创建第一个版本库

1.首先创建需要使用Git管理代码的目录并定位到该目录下:

mkdir git_test  // 创建目录

cd git_test  // 进入该目录

uploading-image-704141.png

2.使用git init命令初始化仓库

uploading-image-372728.png

从上面的图中可以看到使用git init会帮我们创建一个空的仓库,并在当前目录下创建了一个.git的隐藏目录,这就是版本库目录。


版本创建与回退

版本创建

创建第一个版本:

1.在当前目录下创建一个code.txt文件,编辑内容如下:

uploading-image-238609.png

2.使用以下两条命令可以创建一个版本:

git add code.txt

git commit -m "版本说明信息"

uploading-image-517806.png

3.使用git log命令查看版本记录:

uploading-image-467205.png

PS: commit -m “这里面写的只是一些提示信息,并不是版本号”,使用git log命令查看版本记录时 commit 后面会显示当前版本的序列号;上图红色方框部分。

创建第二个版本:

1.首先在之前创建的code.txt添加新的内容:

uploading-image-432158.png

2.使用之前创建版本的两行命令将刚修改的code.txt保存为新的版本:

git add code.txt

git commit -m "版本2"

uploading-image-934548.png

3.使用git log命令可以看到两个版本记录:

uploading-image-802572.png

Git在创建每一个版本时会添加一个记录,而不是复制一份代码;
新的版本依赖于前一个版本;

版本回退

1.若想回到前一个版本,可以使用如下命令:

git reset --hard HEAD^

其中HEAD表示当前最新版本,HEAD表示当前版本的前一个版本,HEAD^表示当前版本的前两个版本,也可以使用HEAD1表示当前版本的前一个版本,HEAD100表示当前版本的前100个版本。

uploading-image-639915.png

可以看到当前HEAD已经位于版本1

uploading-image-736989.png

执行命令后使用git log查看版本记录,发现现在只能看到版本1的记录

2.假如我们现在又想回到版本2,这个时候怎么办?

  • 可以使用如些命令回到指定的版本:
git reset --hard 版本号

uploading-image-166624.png

uploading-image-877417.png

uploading-image-329110.png

PS:版本号只需要复制一小段即可回退到指定的版本当中

3.假如说上面的终端已经关闭过,然后重新打开终端;这时发现之前版本2的版本序列化已经看不到了,那么要怎么回到版本2呢?

  • 使用git reflog命令可以查看之前的操作记录,这里面会显示所有记录的版本号:

uploading-image-257537.png

工作区与暂存区

工作区(working Directory)

  • 电脑中的目录,比如我们现在的git_test目录就是一个工作区。

版本库(Repository)

  • 工作区有一个隐藏的.git目录,这个不是工作区,而是git的版本库;而这个版本库在使用init初始化时自动创建。

  • git的版本库里面存了很多东西,其中最重要的就是成为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

  • 因为我们创建git版本库时,git自动为我们创建了唯一一个master分支,所以现在git commit就是往master分支上提交更改。

  • 也可以简单理解为,需要提交的文件修改后通通放到暂存区,然后一次性提交暂存区的所有修改。

uploading-image-517854.png

前面讲了我们把文件往git版本库里添加的时候,是分两步执行的:

  • 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

  • 第二步使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

查看工作区状态

  • 在我们不确定当前工作区修改过哪些文件或是新创建了哪些文件时,可以使用git status命令查看工作区的状态。

uploading-image-612686.png

  • 当我们在工作区创建新的文件或者目录时,git并不会跟踪记录状态;需要使用git add命令添加到暂存区后才会帮我们跟踪记录修改的状态。

uploading-image-116351.png

  • 如果工作区的内容没有发生任何改变的话,此时暂存区是干净的。

uploading-image-448831.png

posted @ 2019-10-15 13:06  执笔画素颜  阅读(229)  评论(0编辑  收藏  举报