一分钟玩转 Git

今天又有新来的小朋友问我关于 Git 的用法,我发现仍是有蛮多新人不会用的,或者用很差的。其实想一想本身刚工做时也是倒腾不清楚这些参数和用法,并且总怕出错,慢慢的多看文档、用得多了就熟悉了,今天简单跟你们分享几点。git

必知的 add & commit

首先咱们要清楚在本地的三种状态:缓存

好吧我把命令已经写上去了。ui

本地改完了代码,就用spa

git add 文件名/文件夹/多个也可

提交到缓存区,这里若是文件改动的比较多,但又不是每一个都须要提交,我会设置 git ignore file,就表示这些文件不要提交,好比在 build project 的时候会自动生成的那些文件等等。3d

而后再日志

git commit -m "comment"

才会到本地库。通常后面都会跟个 -m 加句 comment,简单说下改了啥,像咱们公司你们默认也会把 Jira连接附上,这样就知道这个改动对应哪一个任务。code

那若是想再改,再从新 git add 便可,可是 commit 这句须要改为blog

git commit --amend

这样就仍是一条 git log 信息。索引

Log

git log 可让咱们查看提交过的日志,这个主要是由于若是须要对版本进行前进 or 后退的(下一个 reset),就须要用到编号rem

直接 run

git log

的话就会显示一大坨信息,从近到远显示每次 commit 的 comment 还有做者、日期等信息,好比大概长这个样子:

commit 5abcd17dggs9s0a7a91nfsagd8ay76875afs7d6
Author: Xiaoqi<xiaoqi@163.com>
Date: xxx xxx xxx
改了 Test 文件

commit 后面的这个编号,是每次历史记录的一个索引

这样打印的 log 太多,更简洁的打印方式是:

git --oneline

就一行打印出来了。

或者:

git reflog

更经常使用一些。

Reset

那咱们刚刚说过,若是须要前进或退回到某个版本,就用

git reset --hard <编号>

这样就直接跳到了这个编号对应的那个版本。

那么这个 hard 是什么意思呢?

这里有 3 个参数:hard, soft, mixed,咱们一一来讲一下。

回到咱们最重要的这张图上来:

咱们刚刚说的前进或后退到某一版本,是对本地库进行的操做。

那有个问题:
本地库的代码跳到那个版本以后,工做区和暂存区的代码就和本地库的不一样步了呀!

那这些参数就是用来控制这些是否同步的。

git reset --hard xxx

三个区都同步,都跳到这个 xxx 的版本上。

git reset --soft xxx

前面两个区不一样步,就只有本地库跳到这个版本。

git reset --mixed xxx

暂存区同步,工做区不动。

因此呢,用的多的就是 hard.

关于 Git 的用法还有不少,若是你们喜欢这个系列还请给我点个「在看」呀,这样我就更有动力去写啦~

悄悄话:每次到了周四都以为周末快到了,想着今天多干点活明天就能够早下班了,因此今天效率超级高哈哈~

相关文章
相关标签/搜索