Git 命令从入门到转行

前言 :  之前一直在用 svn  , 但是项目组为了方便管理决定自己搭建一个 gitlab 在服务器上 。 所以只能开始学习 gitlab 。 由于服务器已经搭建好 , 所以我只需要学一些客户端的操作就好 , 我在此写的也是客户端的命令行 , 如果有需要搭建 gitlab 之类的操作 , 请直接跳转至百度就好了 , 有很多的教程 。 


一 :安装 git 命令

直接在 cmd  命令窗口输入 git ,会报无此命令 。 因此百度git csdn , 就能下载到了 。 解压安装后就可以在 cmd 命令窗口使用 git命令了。


二 :git 客户端常用命令


git 的基本概念大家应该有所了解, 如果不了解请自行百度 , 网上很多 。 了解的同学知道 , 由于git是分布式的版本控制工具 , 他的特性之一就是除了在服务端有一个共享仓库之外,在本地也有一个仓库 。 所以, 在没有连网的情况下 , 也可以提交 , 更新代码 。 也由于这种特性 , 使得 git 命令分为远程操作本地操作 两种。


 首先先讲解本地操作的命令  ,所谓本地操作命令就是指对本地的代码进行一些操作维护:

1. 之前说到,在本地有一个本地仓库 , git 将会对本地仓库中的项目进行维护  。  所以第一步是创建一个本地仓库  : 

  创建一个目录  , 我这里在 e 盘中创建一个目录 test  .  之后在 cmd 命令窗口中进入到该目录 , 并输入 git init  ,这就是初始化一个本地仓库,使用该命令后你在打开目录可以看到多了一个 .git 文件 (此目录是隐藏文件,需设置成可看隐藏文件) ,这个目录就是git用于存放对项目管理的一些信息的 。

 


2. 了解了git 后我们知道 , git 管理项目有三种状态 , 分别是  workspace(工作区) ,  暂存区(stage) 以及 本地仓库(local repo) 。 



 这三个状态分别是什么意思 , 懂得人已经懂了 , 不懂得别急, 随着下面的命令你就会懂了 。

首先在test目录下创建一个 test.txt文件 , 里面的内容随便输入, 我在这里写 "hello git!".

这样 , 你创建的test.txt 文件现在所属的位置为 workspace中 。 现在使用命令 git status 来查询 git所管理项目的状态。


如图可知 , git 检测到我们创建了该 txt文件 , 并且提示我们将该文件 add 到 git 。 所以我们按照提示来写命令  git add test.txt (或者 git add .) .


如上图 ,add 操作后并查看当前的状态 , 提示我们已经 add 成功 , 此时该文件已经在 暂存区中 。 并且提示我们可以 commit , 于是我们输入命令  git commit -m "xxx" (提交所有文件,如果只commit指定文件则在其后输入文件名) 。



==================================================================================================================================

到现在为止 , 我们已经将自己创建的项目(txt文件,换成其他的项目或者工程操作不变) 成功的提交到本地仓库了 。 但是我们要对这个项目进行更改, 比如你的代码肯定还会再次修改,那么我们怎么提交我们更新后的代码 。 


首先我们更改我们的 test.txt 文件 , 

使用 git diff 命令查看修改后的文件内容和暂存区的内容有何区别 。



这里解释一下 提示信息内容 表示什么意思 :

第一部分表示为你使用的git格式的diff:

diff --git a/test.txt b/test.txt

第二部分表示两个版本的git哈希值(index区域(暂存区)的a290c93对象,与工作目录区域(workspace)的4e9ef79对象进行比较),最后的六位数字是对象的模式(普通文件,644权限)。

index a290c93..4e9ef79 100644

第三部分表示进行比较的两个文件:

--- a/test.txt 

+++ b/test.txt 

"---"表示变动前的版本,"+++"表示变动后的版本。

第四部分表示变动的位置,用两个@作为起首和结束:

@@ -1,1 +1,5 @@

前面的"-1,1"分成三个部分:减号表示第一个文件(即index区域的对象),"-1"的1表示第1行,后面的"1"表示连续1行。合在一起,就表示下面是第一个文件从第1行开始的连续1行有改动。同样的,"+1,5"表示变动后,成为第二个文件从第1行开始的连续5行。 (个人感觉不准,因为大家都知道第一行我们没有变动)。 

最后一部分是具体的差异部分:

红色的是被改动的,  被改为下面绿色的部分 (其实我们没变)  。 然后接下来 两行回车 和 两行数字是我们新加的。


然后使用  重复上面的操作 , git add test.txt 提交到 暂存区 , 然后使用  git commit -m "xxx" 提交到本地仓库就可以了。



============================================================================================================


如果我们想撤销我们修改的内容呢 , 比如修改后发现不需要了 , 于是撤销, 或者提交到 暂存区发现不需要了 , 或者已经提交到本地仓库了 , 那我们要怎么撤回呢。


根据前面对基本概念的了解,更新可能存在三个地方,WorkSpace中,Stage中和repo中。下面就分别介绍一下怎么撤销这些更新。

 1.撤销WorkSpace中的更新

接着上面的例子,先将test.txt中的文本设置如下内容,并提交。

hello git !

然后将test.txt中的内容进行修改:

123
所以我们现在在本地内存中的内容为 hello git! ,而在workspace中的内容为 123。 现在我们可以使用 git checkout test.txt 来撤销我们更改的123 , 执行后打开我们的test.txt文件发现他已经变回 hello git !

我们可以使用"git checkout --<file>..."来撤销WorkSpace中的更新。执行test.txt中的文本会变成两行"abc"。



2.撤销Stage中的更新

我们现在的文件是 "hello git!" ,我们现在把它再次修改为 123 并且 add 到 暂存区 。 那么我们 workspace 中和 暂存区中的内容都是 123 , 我们使用 git reset HEAD test.txt 将内容从暂存区的更新移出到 workspace 中 , 如果想继续从 workspace中撤销, 则重复上面的命令 。



3.撤销repo中的更新

介绍撤销repo中的更新之前,我们先看一下"git log"这个命令,通过这个命令我们可以查看commit的历史记录。

撤销提交有两种方式:使用HEAD指针和使用commit id

在Git中,有一个HEAD指针指向当前分支中最新的提交。当前版本,我们使用"HEAD^",那么再前一个版本可以使用"HEAD^^",如果想回退到更早的提交,可以使用"HEAD~n"。(也就是,HEAD^=HEAD~1,HEAD^^=HEAD~2)

git rest --hard HEAD^
git rest --hard HEAD~1
git rest --c2760c5512bc67a8b990c1da508d40cca623f23

此时查看自己的 test.txt 文件内容 


4.撤销我们的撤销操作

有时我们撤销代码之后,又后悔撤销 , 那么我们该怎么办 。 没关系 , git可以撤销我们的撤销操作。
输入"git reflog"这个命令。"git log"只是包括了当前分支中的commit记录,而"git reflog"中会记录这个仓库中所有的分支的所有更新记录,包括已经撤销的更新。


可以看到我们有三次 commit 记录 , 一次 reset 的记录 。 下面我们就撤回我们的 撤回操作 。 

git reset --hard  13660b9

     

现在我们的 test.txt文件 就回归之前的内容

==================================================================================================================



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值