git火速上手(一)

323天前 · 代码 · 535次阅读

马上要和一些大佬一起做项目了,想起来git的东西有点忘得差不多了,遂来简单复习一下。说是火速上手,权当自己是小白罢辽。

基础知识

总所周知,git中有三个分区

  • 工作区 (working directory)
  • 暂存区 (stage index)
  • 历史区 (history)

我们直接接触工作区,通过暂存区与历史区链连接。一般来说是下图这种单向的关系

单向关系

当然有时候也可以通过reset将历史区的代码重置回工作区去。

初始化

git init

输出

添加文件

git add xxx

xxx为文件名,当然也可以git add .直接添加全部。

嘿!为啥不用git add *呢?

因为git add *会忽略你的.gitignore规则,直接把所有文件添加咯。但是git add .会根据你的.gitignore来添加对你真正有用的东西🤤

输出

提交至历史区

git commit -m "好听的summary" xxx

xxx为暂存区中这次想要提交的文件,不填的话就默认全给你提交咯。

输出

查看状态

git status

这个状态指的是工作区和暂存区状态。工作区没有改动时会提示你没有改动。

无事发生

当修改了工作区的文件时,可以直接在这里看到有什么文件发生了改变。

改变但没添加

但是这个时候会发现,modified: index.html是红色的,看起来不是很舒服,跟个警报一样。往上一看,噢,Changes not staged for commit,这是说修改了但还没提交至暂存区。提交一下试试。

添加后

变成了绿色,顺眼多了。那么再试试提交之后嘞?

消失了

悄悄地他走了,正如他悄悄地来。

小贴士: 可以使用 -s参数显示简短信息

查看提交日志

git log

首先是git log,这个从名字就透露出一股子日志气息的指令毫无疑问就是查看日志的指令了(搁这搁这呢?

git log

输出

可以看到这个指令将每一次的提交的详细信息都展示出来了。第一行黄色的代表着那一次提交的哈希值,也是那一次提交的索引。下面三行都是一些基础信息辣。不过要是还觉得太复杂了咋办,不想显示这么多东西。没问题。

git log --pretty=oneline

输出

历史大突破,全被压到一行里头去了,这次满意了吧。啥,还嫌长,行,再给你整个短点的。

git log --oneline

输出

怎么说,这次总该满意了吧。

git reflog

这位更是重量级。

git reflog

输出

多么精致,多么简洁的输出。他可以查看所有分支的所有操作记录包括commit和reset的操作,甚至包括已经被删除的commit记录。

其中HEAD是指当前版本的指向,上图所示我们就是在ba30e49这个版本。

回滚

程序员儿的福音来了。当你不小心手抖搞出了些奇葩操作的时候咋整咧?回滚呗。回到上一个版本,就当无事发生。

细心的同学发现了,上一张图里我多了一个提交,标题是“删除了一个P标签”。这其实不是我删的,是我表弟删的,太熊了我这表弟。现在我想把我失去的代码找回来,咋整呢?哎对了,回滚到上一个版本。上一个版本号多少来着?看一下git reflog,噢是a43793f。那么输入指令

git reset --hard a43793f

输出

现在我们的版本回到了a43793f版本。看看我的p标签回来没。

好耶!现在再看看reflog,可以看到第一行,我们的版本号又回到了a43793f

reflog

--hard, --soft, --mixed的区别

使用--hard的时候,历史区,暂存区和工作区会一起回滚,非常的强硬;而使用--mixed时,是历史区和暂存区进行回滚;使用--soft的时候,则只有历史区回滚了。

一般来说我们都是使用--hard强制跳回(前往)某一版本。

DIFF

这个命令可以进行一个文本的比较。默认是工作区与暂存区的文件进行比较,例如

git diff

输出

当有多个文件改动时,我们也可以指定某一个文件进行diff查看,在指令后面加上文件名字就好了。当然,diff还不止于此,它甚至可以比较历史区中两个不同分支,不同版本的区别。

结束

以上便是git在本地使用时的一些基础用法。下一次再来写一下多人协作时的常见操作。

👍 11

git

最后修改于284天前

评论

贴吧 狗头 原神 小黄脸
收起

贴吧

狗头

原神

小黄脸

  1. 星浪 304天前

    我:我会了 脑&手:不,你不会

    1. 季悠然 304天前

      在会了在会了

  2. 霂森西 316天前

    学废了学废了

  3. 城南旧事 316天前

    注定是我看不懂的东西

    1. 季悠然 316天前

      大佬谦虚了
      话说大佬的头像加速真顶啊,点个赞~

      1. 城南旧事 316天前

        服务器和CDN采用的级别比较高而已,哈哈

  4. 理智君 318天前

    内心op:他好像真的想要教会我们

    1. 季悠然 316天前

      学!都给我学!

  5. 幻焕 321天前

    教学相长!

    1. 季悠然 321天前

      嘿嘿

目录

avatar

季悠然

寻找有趣的灵魂

127

文章数

1960

评论数

3

分类

好热啊

arknights!

如果你的梦想,是拯救苍生,那我的梦想,便唯你一人。

215