Bin Zhang

Git Learning

張賓 / 2020-03-24


之前学习了git差不多又忘记了,所以今天再复习一下,然后做一下记录,我之前都是在廖雪峰的网站上学习的。而且发现git的命令已经改了,所以必须自己记录一下了。

里面介绍的非常详细,我这里只记录一下自己的学习。

add与commit

这是两个基本动作,在不出错的情况下,会这两个就够了。

工作区
└── 版本库
    ├── 暂存区
    └── 分支

我的理解是这样的,add把修改添加到暂存区,commit把修改提交到分支。

一次成功是最好的结果,可是人生啊就是在不到的错误中前进的。因此修改重来是常有的事。

修改与撤销

当没有提交到分支时:

git status查看暂存区状态,

git diff --<file>,查看文件的修改情况

git diff显示出了工作区与暂存区不同的所有修改。

git restore <file>...来恢复,把暂存区的文件拿出来覆盖了工作区,慎用啊,不小心把自己写好的东西弄丢了就不好了。

添加是对暂存区进行覆盖,恢复是对工作区进行覆盖。

git rm <file>删除暂存区的文件。

版本回退

版本库记录了每一次提交,也记录了每一次的命令操作。

git log查看提交日志,

git reflog查看对版本库的每次命令操作。

有了这两个命令,就可以在不同版本里来回穿梭了。

git reset --hard HEAD,来回退版本

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

这种方式只能不断的往前回退,不能去新的版本。

另外一种方式是使用版本号,就是那段非常长的数,每一个版本都有它唯一的编号。

$ git reset --hard 1094a

可以以此在不同版本间穿梭,那个号不用全写完,足够git找到就行。

回退版本就把工作区的文件覆盖了,所以回退操作前也要谨慎。

git设置忽略排除和重新添加已经忽略的文件(夹)

重新添加已经被忽略过的文件(夹):

git rm -r –cached .

清空暂存区,再重新添加。

阿里技术1有一篇文章对概念解释的比较清楚,不过看不懂,看起来都头大

添加远程仓库

git的最大优势就是他的分支仓库

git remote add github git@github.com:magic-moon/bigzhang.git

关联后,使用命令git push -u github master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push github master推送最新修改;

参考:


  1. 一文讲透 Git 底层数据结构和原理 ↩︎