Git 基本用法

2023年1月11日,学习了 Git 和 Gitee 的用法,这里仅记录目前学到的用法,以便后期回顾。

安装

过程较为繁琐,这里不多赘述,具体参考请这篇博客

初始设置

初始化

右键菜单打开安装好的 Git Bash Here ,然后输入以下命令设置用户名和邮箱:

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

用 Windows 自带终端打开 Git (可选)

  1. 右键打开 Git Bash 输入命令 where git ,记下安装路径,如下图:

    image1
  2. 找到位置后往父文件夹一层层查找,直到找到一个 cmd 文件夹,复制其路径,比如D:\Program Files (x86)\Git\cmd\

  3. 编辑环境变量 Path 将复制的地址添加到 Path 中,然后保存

  4. 最后,再次打开终端输入 git 回车,显示下图,大功告成

    image2

创建版本库

版本库是用来存放你的项目的,对你项目的一删一改,版本库都能监控的到。

  1. 首先寻找一个目录(切记不能是含中文目录),创建一个文件夹
  2. 然后在此文件夹右键打开 Git Bash,输入命令 git init 初始化(这样版本库才能管理此文件夹中的内容)
  3. 完成的标志就是该目录下会出现一个叫 .git隐藏文件夹,它是用于记录项目的改动的,千万不能删

基本操作

如下表即为 Git 几乎所有的核心使用命令,接下来将一一详解:

命令 用途
git init 以当前目录作为项目库,初始化 Git
git add [path] 向 Git 添加或 修改文件(暂存区
git rm [path] 向 Git 删除文件(暂存区
git commit -m [message] 合并到分支中(快照)
git reset --hard [id] 回滚到某个快照版本
git reflog 查看快照的回滚步骤
git log 查看快照,比 reflog 详细,但没有 reset 回滚
git status 查看 Git 的状态,关于各区域的文件情况,包括增删改
git diff [path] 查看这个文件和之前文件的对比

add & commit

这里已经初始化了一个 gitee_suyuan 目录作为项目库,先在此新建一个 note 文本文件,如下:

image3

接下来,把文件交给 Git 管理,也就是加入本地仓库,只要【两步】:

  1. 将文件预先添加到 Git 仓库,如果没有出现任何提示,代表你这条命令执行成功了

    git add note.txt
    
  2. 然后提交给 Git 仓库,并且附上说明

    git commit -m "刚刚我创建了一个文本"
    
image4

1 file changed(文件改变),1 insertion 插入(代表行,我只写了一行)

提醒几点:

  • git 操作必须在存在 .git 的仓库下进行,否则没有意义,git init 除外

  • 如果添加的文件没有任何更新,则不会进行合并,也就是提交

  • add 可一次添加多个文件,通过空格间隔,如 git add [file1 file2 ...];注意,这些并不是文件名而是路径

  • addcommit 之前会一直记录,你又新添了一行,然后在进行 add 命令,都会被记录叠加,最后 commit 对他们一次处理

  • 如果将原有文件修改并添加提交,就能在仓库里更新文件,它会将存在的文件进行覆盖,将新文件进行创建

status

那么假如有人在我们不知情的情况下对这个项目进行改动,我们又如何知道什么地方被修改了呢?

这时候就要通过 status 命令去查询当前的项目状态:

image6

从中能看到 modified(改动了)说明 Git 能通过以前的文件和现在的文件做比对,而得到现在的情况,包括增删改

这时候用 add 将 note 添加到暂存区,颜色则会变成绿色,代表已经加入,如下:

image7

diff

正如上文,我们通过发现 note 文件被修改了,那么如何查看修改了哪些内容呢?

Git 提供了一个 diff 命令来查看,如下:

image8

输出显示,上一个版本是2行,现在是3行,并且会显示2个文件,说明 Git 并没有做具体的对比,只是给你展示了双方的文件内容。

这种对比方式不适用于大量的内容,因此要具体查看还是应到编辑器里对比。

log & reset

除了上面几个功能,还有一个功能很重要,那就是 log 命令。

使用 log 就能查看该项目的详细修改记录,如下:

image9

commit 那一行黄色字体表示用 hash 值生成的 ID 代表的是你提交的版本号可以通过它进行回滚

Author 代表作者,就是你开头安装完之后,输入的本机信息

Date 代表更新时间

回滚命令需要根据你的 log 显示的 ID 进行回滚,如下:

git reset --hard id  # 此处的hard相当于指针,你可以不用写全ID,Git就能自动去查找
image10

说明 Git 是根据 ID,将现在的版本定为,你回滚的版本,而且如果你没有关闭窗口,根据 ID 照样可以回滚回去。

reflog

如果回滚错了,又关闭了窗口,不记得是哪一个回滚了,Git 也有个功能可以查看你的回滚日志。

使用 reflog 命令查看日志,如下:

image11

现在是 1792cdf 的版本,可以通过前面的版本号回滚。

从下往上看,是每一次commit,然后执行了reset命令。看的很清楚。

说明 Git 记录了每一次快照改变的情况。

rm

说完了增和改,该到删除了。我们可以用 rm 命令来预先删除文件,但删除也算是修改,所以也需要 commit

对于删除操作,和添加和修改一样的,要说明删除了哪个文件才可以,然后就要和添加修改一样,先把他放到暂存区再提交。

git rm [file] # 放入暂存区
git commit -m [message] # 提交删除
image11