GIT 初识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ferrycooper/article/details/50838757

          什么是git ,经常在各博客、IDE和网站上看到git ,然而什么是Git真的没个概念,为什么git这么受欢迎,还是学习并实践下才能理解git的强大。

       git 是一个版本控制系统,官方的解释是:版本控制(Revision control)是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统的系统。Git可用于任何需要版本控制的文件,平时我们处理的word文档什么的,只需修改复制重命名就可以满足我们的需求,可是在软件工程领域,一个工程包含众多的文件,一个工程很可能是多人并行开发的,这样在多文件多人中如果也是通过拷贝重命名来处理将会变得非常棘手。Git的出生就是为了解决这样的问题,有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。你可以比较文件的变化细节,查出是谁最后修改了什么地方从而造成某些怪异问题,又是谁在何时报告了某个功能缺陷,等等。

       还是边实践边理解各种概念吧,先安装git,这个不用说,我是在windows平台下的,安装好后,有一个git Bash的可执行文件,打开后就是一个命令行控制台。Cd到需要进行版本控制的工程目录下,我的是GitTest,在该目录下新建一个本地仓库,执行git init


就会显示初始化空的仓库在某某目录下,在该目录下会看到.git的文件夹,这就是本地仓库。

       在git中任何一个文件只有三种状态,已提交(committed),已修改(modified)和已暂存(staged),git就是在这三种状态中工作的,已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。接下来在该目录下新建文件,新建一个c源文件my.c

保存退出,该目录下有了my.c文件,使用git status查看状态

显示该文件“Untrackedfiles”表示未跟踪,按照他的提示执行gitadd my.c,再git status查看状态,发现my.c的状态变成了“Changesto be committed”表示该文件已暂存但未提交,并且字体颜色也变成了绿色。


再来看看已提交是个什么状态,执行gitcommit –m “新增文件my.c”


会出现“Pleasetell me who you are”,git需要知道是谁提交了以及如何联系这个人。这就是开始说的git可以追溯到是谁什么时间对什么东西进行了什么操作,所以还需要配置下个人信息。

       git config --global user.name "XXXX"

       git config --global user.email "[email protected]"                                                       配置的是系统该用户的全局信息

执行会后发现C:\Users\xxx下多了.gitconfig的文件(xxx为计算机的用户名)打开后发现user.name和user.email已配置好

      git config user.name "XXXX"

      git config user.email "[email protected]"                                                                      配置的是该工程的信息

同样可以在工程.git文件夹下的config文件中发现用户信息已配置好。

配置好后可以使用git config –l查看配置的信息。


配置好将之前暂存区的内容提交执行gitcommit –m “新增文件my.c”


再查看状态


Git 可以知道什么时候什么人干了什么是怎么做到的呢,执行git log可以查看提交记录


我这里字符编码有点问题。

        那么git是怎么做到可以回退到特定版本的呢?将my.c文件增加一行保存。


然后add并提交可以直接使用git commit –a –m “第一次修改文件”


要想回到某个版本,想用git log查看提交的记录


每次提交都会有一个40位的哈希值,这就是该版本的指纹信息,使用git reset –hard xxxxxxx,xxxxxxx为某个版本对应的哈希值的前七位,我要回退到my.c没有新增行的状态则执行git reset --hard 0568cb7


则再次打开my.c原来新增的行没了回退到了之前的版本


        到这里发现git在文件管理版本控制方面真的有很大的优势,git在软件开发方面这么火也就能理解了,我这里还只是初步的认识了git,git的强大在多次实践后自然会有所体会。

猜你喜欢

转载自blog.csdn.net/ferrycooper/article/details/50838757