git 入门教程

前言

上节我们已经学会了git的环境的配置以及git的一些基本命令,由于只是粗略的使用,这节将带大家更加深入的理解git的使用。在学习之前我们需要熟记git用常用的几个概念词汇,工作区,暂存区,版本库,远程库。

上图如果侵权,麻烦联系本人。 

状态简览

我们可以使用git status命令输出十分详细的内容,其使用语法特别繁琐。如果你使用 git status -s 命令或 git status --short 命令,你将得到一种格式更为紧凑的输出。如下图:

查看工作区与暂存区的区别

如果 git status 命令的输出对于你来说过于简略,而你想知道具体修改了什么地方,可以用 git diff 命令。git diff 可以告诉你工作区中的文件与暂存区中的文件有啥区别。(使用 git add 命令之后,会将新增的文件的状态从工作区状态变为暂存区状态)

首先我们先在目录下创建 git status.txt文件,然后使用git add .命令将文件提交暂存区,如下图。

接着我们在命令输入git diff ,查看此时工作区中的内容与暂存区内容是否有区别,如下图。

此时修改git staus.txt文件的内容,往文件添加hello信息。 然后执行git diff 命令。

上图中红框的内容表示工作区与暂存区的区别。

查看暂存区与HEAD的区别

如果我们使用git commit命令之后,会将暂存区中的内容提交到HEAD。

上图中,我们先是修改了一次文件,然后使用git add 命令将文件提交到暂存区,后面又再次修改了文件,但是并没有使用git add 或者git commit 命令提交修改的信息,此时我们可以使用git diff --cached 查看已经暂存的与HEAD 之间的区别( --staged 和 --cached 是同义词):

查看工作区与HEAD区别

接着我们继续对比工作区与HEAD之间的区别,我们可以使用 git diff HEAD命令

移除文件

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。 可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分(也就是 未暂存清单)看到:

然后再运行 git rm 记录此次移除文件的操作:

下次提交时,这个文件就不会被纳入版本管理了。

如果我们想把文件从 Git 仓库中删除(即从暂存区域移除),但任然需要保存工作区中的文件。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。我们可以使用 git rm --cached file 命令。

命令执行前的状态

命令执行之后:

git撤消操作

1.git commit --amend使用

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交,使用该命令之后会进入编辑模式。

上图中我们将commit信息修改之后变为如下

2.git checkout --file 使用

如果修改了文件,但是并没有将文件提交到暂存区,你可以用git checkout -- [file]来撤销,使用命令之后,将会丢弃工作区中的修改。

我往文件中添加了third字符串内容,如下图:

当执行git checkout .之后文件内容又恢复回原来的样子,如下图:

 3.版本回退与切换

比如我们在一次提交中提交了一个需求,这个时候我们领导说,这个需求作废了,不需要了,那这个时候我们怎回退commit,我们可以使用git reset –-hard HEAD^ 命令回到上个版本。一开始下图中存在4个commit信息

执行完git reset --hard HEAD^

或者可以使用git reset –hard commit_id 命令直接跳到某个版本的信息

从上图中我们可以得知,我们可以只填写commit_id的前半部分信息,也可以回退版本。

但是这个时候,领导突然改变主意了,说新做了需求需要马上上线,但是我们发现使用 git log 命令只能看到两个提交信息,这个时候该怎么办,也许这个时候你很担心,数据丢失了,但是完全不用急,我们可以使用 git reflog 命令查看操作过的信息。如下图

我们最后提交commit信息是

我们同样可以使用git reset –hard commit_id 命令回到我们之前的版本

哈哈,又回到之前的版本了。

总结一下上面所学的:

1.当你修改了工作区某个文件的内容,想直接丢弃工作区的修改时,使用命令git checkout -- file
2.当你改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,第二步使用命令git checkout -- file1操作。
3.已经提交到版本库时,想要撤销本次提交,使用git reset --hard HEAD^

4.回到某个提交版本,使用git reset –hard commit_id

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值