Git之旅(3):仓库

栏目: 编程工具 · 发布时间: 5年前

内容简介:所属分类:Git
  • A+

所属分类:Git 运维技术

博主会将与Git有关的知识点总结到"通俗易懂Git入门系列"文章中,如果你对Git不是特别了解,请 按照顺序 阅读"Git系列",以便站在前文的基础上理解新的知识点。

当我们需要使用git进行版本管理时,要接触的第一个概念就是"仓库",你可以把"仓库"理解成一个目录,只有这个目录中的文件才能被git管理,换句话说就是,如果你想要对某个文件进行版本管理,你就需要把这个文件放入到一个带有git功能的目录中,这个带有git功能的目录就是所谓的git仓库,git仓库的英文为"git repository",后文中所提到"仓库"、"版本库"、"repository"、"repo"其实都是一种东西,我们会不加区分的使用这些名词,它们都表示"仓库",当你把一个文件加入到某个git仓库以后,你对这个文件的所有操作都可以被git记录,从而实现版本管理的目的。

所以,为了使用git进行版本管理,我们首先要做的,就是创建一个git repository。

我们可以直接创建一个空的git仓库,也可以将一个已经存在目录转化成git仓库,我们先来看看怎样创建一个全新的、空的git仓库(操作系统为win10)。

假设,我想要在"D:\workspace\git"目录中创建一个名为git_test的版本库,该怎么办呢?

首先,我们需要进入到"D:\workspace\git"目录中,你可以打开"Git Bash",然后输入如下命令进入目录

$ cd /d/workspace/git
注:在windows的git bash中,D盘对应的路径为/d/

你也可以在windows的资源管理器中打开"D:\workspace\git"目录,然后在目录的空白处单击鼠标右键,然后单击右键菜单中的"Git Bash Here",通过这种方式打开的git bash终端默认就在对应的目录中。

注:在后文中,我们输入的所有命令都是在git bash中执行的,如有特殊情况,则会说明,之后不再赘述。

当进入到对应目录后,执行如下命令即可创建git_test仓库:

$ git init git_test
Initialized empty Git repository in D:/workspace/git/git_test/.git/

没错,非常简单,执行完上述命令后,"D:\workspace\git"目录中会多出一个名为"git_test"的目录,这个目录就是一个git仓库,你可以将需要进行版本管理的文件放入到"git_test"目录中,从上述命令的返回值也可以看出,我们已经成功的初始化了一个空的git仓库。

进入刚才创建的git仓库,也就是"/d/workspace/git/git_test"这个目录,你会发现一个名为".git"的隐藏目录

$ pwd
/d/workspace/git/git_test
 
$ ls -a
./  ../  .git/

这个目录非常重要,git会依靠这个目录进行版本管理的工作,git会将版本管理所需的相关信息转化成git对象存放到这个目录中,其实,这个".git"目录才是真正的git仓库,这个仓库是针对git_test目录的,我们依靠它对git_test目录中的文件和目录结构进行版本管理,".git"目录赋予了git_test目录进行版本管理的能力,我们在之后的文章中会使用到这个目录,以便更加深入的理解git的运行原理,但是,需要注意,在任何时候都不要手动的修改或删除".git"目录中的文件,因为这样会破坏仓库,仓库被破坏以后,就无法进行版本管理了。

上述步骤描述了怎样创建一个新的、空的版本库,那么我们能不能把一个已经存在的目录变成一个git仓库呢?当然可以,而且更加简单,我们只需要进入到对应目录,然后执行"git init"命令即可,示例如下:

假设,我想要将"/d/workspace/git/code_test"目录变成一个git仓库,只需执行如下命令

$ cd /d/workspace/git/code_test
$ git init

执行完上述命令以后,code_test目录中就会多出一个".git"隐藏目录,此时,code_test目录就是一个可以利用git进行版本管理的目录了。

无论之前code_test目录中是否包含其他文件,我们都能够使用"git init"命令将code_test目录变为一个git仓库,即使code_test目录中原来就包含其他文件,当我们执行"git init"命令以后,code_test目录中的原有文件也不会被git管理,因为如果想要管理这些文件,我们还需要一些其他操作,才能将它们纳入到git的追踪范围以内,也就是说,git init命令只是让code_test目录拥有了版本管理的能力,无论code_test目录中原来是否存在文件,".git"目录都是新创建出来的,从git仓库的角度来说,这就是一个新的仓库,还没有任何文件被这个仓库所管理。

小结一下

git init命令是把当前目录转化成git repo

git init repo_name 命令是在当前目录中创建一个以repo_name命名的新目录,新目录是一个git repo

了解了仓库的概念以后,我们再来回顾一下上一篇文章中的知识点,我们已经说过,如果想要使用git进行版本管理,必须先提供我们用户名和电子邮箱,因为这些信息需要被记录到仓库中,我们可以使用如下命令设置用户名和邮箱

$ git config --global user.name "zsythink"
$ git config --global user.email "zsy@zsythink.net"

我们解释过上述两条命令的作用,但是并没有解释上述命令的"--global"选项是什么意思,现在,我们就来聊聊这个选项是什么意思。

从字面上看,"--global"的意思是"全局的",也就是说,如果我们在设置用户名和用户邮箱的时候,使用了这个选项,那么,当前系统用户(windows系统用户)创建的所有Git仓库都会使用这个用户名和邮箱,除了"--global"选项,还有"--local"选项和"--system"选项,没错,聪明如你一定想到了,我们可以通过这三个选项控制设置作用域的范围,这三个选项的作用域如下:

git config --system:使对应配置针对系统内所有的用户有效
git config --global:使对应配置针对当前系统用户的所有仓库生效
git config --local:使对应配置只针对当前仓库有效
local选项设置的优先级最高。

如果想要查看对应作用域的设置,可以使用如下命令

git config --system --list
git config --global --list
git config --local --list

我们在设置用户名和邮箱时,通常会使用"--global"选项,因为这样我们只需要设置一次,当前用户的所有仓库都会使用这些用户名和邮箱信息,即使是当前用户新创建的仓库,也会使用同样的配置,如果使用"--system"选项,可能会影响到系统中的其他系统用户,如果使用"--local"选项,当信息不需要变化时,每次创建新仓库时又都需要重复的为新仓库设置一次,所以,当设置用户名和邮箱时,"--global"选项最常用。

好了,这篇文章介绍了git版本库的概念,并且回顾了之前的知识点,但是还是没有开始真正的使用git进行版本管理的工作,唉......,我都有点等着急了,争取下一篇文章中用上git吧。

我的微信公众号

关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~


以上所述就是小编给大家介绍的《Git之旅(3):仓库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

极简算法史:从数学到机器的故事

极简算法史:从数学到机器的故事

[法] 吕克•德•布拉班迪尔 / 任轶 / 人民邮电出版社 / 2019-1 / 39.00元

数学、逻辑学、计算机科学三大领域实属一家,彼此成就,彼此影响。从古希腊哲学到“无所不能”的计算机,数字、计算、推理这些貌似简单的概念在三千年里融汇、碰撞。如何将逻辑赋予数学意义?如何从简单运算走向复杂智慧?这背后充满了人类智慧的闪光:从柏拉图、莱布尼茨、罗素、香农到图灵都试图从数学公式中证明推理的合理性,缔造完美的思维体系。他们是凭天赋制胜,还是鲁莽地大胆一搏?本书描绘了一场人类探索数学、算法与逻......一起来看看 《极简算法史:从数学到机器的故事》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具