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 (可选)
-
右键打开 Git Bash 输入命令
where git
,记下安装路径,如下图: -
找到位置后往父文件夹一层层查找,直到找到一个 cmd 文件夹,复制其路径,比如:
D:\Program Files (x86)\Git\cmd\
-
编辑环境变量 Path 将复制的地址添加到 Path 中,然后保存
-
最后,再次打开终端输入
git
回车,显示下图,大功告成
创建版本库
版本库是用来存放你的项目的,对你项目的一删一改,版本库都能监控的到。
- 首先寻找一个目录(切记不能是含中文目录),创建一个文件夹
- 然后在此文件夹右键打开 Git Bash,输入命令
git init
初始化(这样版本库才能管理此文件夹中的内容) - 完成的标志就是该目录下会出现一个叫
.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 文本文件,如下:
接下来,把文件交给 Git 管理,也就是加入本地仓库,只要【两步】:
-
将文件预先添加到 Git 仓库,如果没有出现任何提示,代表你这条命令执行成功了
git add note.txt
-
然后提交给 Git 仓库,并且附上说明
git commit -m "刚刚我创建了一个文本"
1 file changed(文件改变),1 insertion 插入(代表行,我只写了一行)
提醒几点:
-
git 操作必须在存在 .git 的仓库下进行,否则没有意义,git init 除外
-
如果添加的文件没有任何更新,则不会进行合并,也就是提交
-
add
可一次添加多个文件,通过空格间隔,如git add [file1 file2 ...]
;注意,这些并不是文件名而是路径 -
add
在commit
之前会一直记录,你又新添了一行,然后在进行add
命令,都会被记录叠加,最后commit
对他们一次处理 -
如果将原有文件修改并添加提交,就能在仓库里更新文件,它会将存在的文件进行覆盖,将新文件进行创建
status
那么假如有人在我们不知情的情况下对这个项目进行改动,我们又如何知道什么地方被修改了呢?
这时候就要通过 status
命令去查询当前的项目状态:
从中能看到 modified(改动了)说明 Git 能通过以前的文件和现在的文件做比对,而得到现在的情况,包括增删改
这时候用 add
将 note 添加到暂存区,颜色则会变成绿色,代表已经加入,如下:
diff
正如上文,我们通过发现 note 文件被修改了,那么如何查看修改了哪些内容呢?
Git 提供了一个 diff
命令来查看,如下:
输出显示,上一个版本是2行,现在是3行,并且会显示2个文件,说明 Git 并没有做具体的对比,只是给你展示了双方的文件内容。
这种对比方式不适用于大量的内容,因此要具体查看还是应到编辑器里对比。
log & reset
除了上面几个功能,还有一个功能很重要,那就是 log
命令。
使用 log
就能查看该项目的详细修改记录,如下:
commit 那一行黄色字体表示用 hash 值生成的 ID 代表的是你提交的版本号,可以通过它进行回滚。
Author 代表作者,就是你开头安装完之后,输入的本机信息
Date 代表更新时间
回滚命令需要根据你的 log 显示的 ID 进行回滚,如下:
git reset --hard id # 此处的hard相当于指针,你可以不用写全ID,Git就能自动去查找
说明 Git 是根据 ID,将现在的版本定为,你回滚的版本,而且如果你没有关闭窗口,根据 ID 照样可以回滚回去。
reflog
如果回滚错了,又关闭了窗口,不记得是哪一个回滚了,Git 也有个功能可以查看你的回滚日志。
使用 reflog
命令查看日志,如下:
现在是 1792cdf 的版本,可以通过前面的版本号回滚。
从下往上看,是每一次commit,然后执行了reset命令。看的很清楚。
说明 Git 记录了每一次快照改变的情况。
rm
说完了增和改,该到删除了。我们可以用 rm
命令来预先删除文件,但删除也算是修改,所以也需要 commit
。
对于删除操作,和添加和修改一样的,要说明删除了哪个文件才可以,然后就要和添加修改一样,先把他放到暂存区再提交。
git rm [file] # 放入暂存区
git commit -m [message] # 提交删除