Git 基本命令之本代码库

目前市面上的版本控制工具主要分为两个板块,一个是集中式版本控制工具,另外一个就是分布式版本控制工具了,而主流的集中版本控制工具主要以CVS和SVN为代表,分布式版本控制工具呢,主要以Git为代表(Git可是大名鼎鼎的Linux创建者Linus花了两周写出来的,注意,仅仅用了二周!!!)。这里有的同学可能会问,集中式和分布式版本控制工具有什么区别呢。好吧,简要介绍下,集中式版本控制工具是将版本库是集中存放在中央服务器的,工作的时候,首先从中央服务器拿下来,然后做完修改后,放回到中央服务器,所以这其中的过程必须在联网的情况下进行,而且速度比较慢。相反呢,分布式就灵活得多,首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。当然,Git远远不止比集中式好这点,还有很多很多,这里就不一一列举了。如果你现在还不会用Git,那么,在下面的过程中来跟我一起学习Git的基本命令吧,当然在命令之前,你首先要自己安装好Git,安装Git非常简单,下好软件,下一步下一步就好了。安装好了好,打开Git bash,
Git bash 界面

1.设置你的用户名和邮箱(–global指的是给你电脑所有仓库执行这个配置)
git config –global user.name “Your Name”
git config –global user.email “Your email”

2.创建版本库(版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以”还原”,所以呢,你可以把你的项目代码复制到版本库中,这样Git就能帮助你进行版本管理了)
ls -l (查看当前路径下的所有目录和文件)
mkdir repository (在当前路径创建一个名字为repository的目录,你也可以取其他名字哈,看你自己)
cd repository(进入刚才创建的目录)
pwd (查看当前的路径)

如图

3.git init(把当前目录变为Git可以管理的仓库,就是这么简单)
这里写图片描述

4.随便写一个文件,放到repository目录或者其子目录下,简单来说,Git只能管理Git仓库的文件,放到仓库以外的目录,它无法管理。建议用Notepad++来写文件,记事本会出一些莫名其妙的错误。
这里写图片描述

5.git add testgit.txt(把文件添加到仓库,若使用git add . 命令,就是将修改过的所有文件添加到仓库)

6.git commit -m “First commit”(-m 后面双引号的内容是表示你对这次修改的说明。)
这里写图片描述
(现在,我们已经添加了一个testgit.txt文件到了仓库了,现在我们在文件中继续添加内容—-add new content)
这里写图片描述

7.git status (git status命令可以让我们时刻掌握仓库当前的状态)
这里写图片描述
( 上面的红色字体表示,我们的testgit.txt文件改变了,但是还没有提交到仓库)

8.git diff testgit.txt(查看我们更改的内容)
这里写图片描述
(从图我们可以知道,Git告诉我们增加了 add new content内容,然后我们执行git add testgit.txt和git commit -m “XXX”,提交到仓库,之后我们执行git status,就会提示如下内容:)
这里写图片描述

9.好了,接着我们又增加一行内容,叫做(add second new content ),然后提交到仓库(add和commit命令,这里我就不重复了)

10.git log(显示我们的历史提交,从近到远,从上到下展示)
这里写图片描述
(需要提示你的是,上面那三串屎黄色的是提交id,每次都不一样,采用的是十六进制编码,有了这个id,我们可以可以回退到任何时候的版本,如果你嫌弃太多了,可以加上–pretty=oneline来显示缩略的历史)
这里写图片描述

11. git reset –hard commit id(commit id 就是之前那些屎黄色的id,想回到哪个地方就回到哪个地方,你可能会想,尼玛,id这么长,这要输入到死的节奏啊,并不是这样的,你只需要输入前几位就可以了,git会自动补全的,另外需要注意的是,假设我回到倒数第二个,这个时候我使用git log命令是就只会显示到最开始到当前的记录,如果这个时候电脑关机了那怎么办呢,接着往下看)
这里写图片描述
(看到没,我回到倒数第二个版本,这个时候我使用git log就只能看到两个版本了,一个是第一次的,一个是第二次的,这个时候我电脑关机了,因为我不知道最新版的commit id了,那该怎么回到最新版啊!也是有办法的,往下看)

12.git reflog(查看历史的git命令,git会自动保存你所有使用过的历史命令)
这里写图片描述
(看到没,这里我们就知道了最新版的commit id了,接着使用git reset –hard 2fe8809就可以回到最新版了)
这里写图片描述
好了,现在我们引入新的概念,这样能加深你对Git的理解
1.工作区,可以理解为目录,比如我们创建的testgit就是一个工作区,在工作区下有个隐藏目录.git,就是Git的版本库,Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。我们使用git add testgit.txt其实就是把更改加到暂存区,然后使用git commit -m “XXX”一次性将暂存区的内容提交到当前分支
这里写图片描述
这里写图片描述
(可以在你创建的目录下进入.git,它是一个隐藏区,看不到,但是我们可以通过路径进去)

13.git checkout – file(丢弃工作区的修改,git checkout – file命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令)
(命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态)

14.git reset HEAD file(把暂存区的修改撤销掉(unstage),重新放回工作区,如果commit到了代码库,可以用之前的git reset –hard commit id命令,回到之前的记录)

15,rm testgit.txt(删除工作目录的文件,但是这个文件还在Git仓库里面,如果删错了,可以从Git仓库恢复文件到工作目录,命令为git check –testgit.txt,如果确实想删除,执行git rm testgit.txt)
这里写图片描述
(上述图片是删除工作目录的文件)
这里写图片描述
(上面的图片是从Git仓库恢复文件到工作目录)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值