一、Git的三种工作状态与工作模式
工作状态:
状态 | 描述 |
---|---|
已提交 (committed) | 数据已安全存储在本地数据库中 |
已修改 (modified) | 文件已被修改但尚未保存 |
已暂存 (staged) | 标记了已修改的文件版本,准备在下次提交中包含该版本 |
工作模式:
分类 | 描述 |
---|---|
工作区 | 电脑中可见的项目目录,用户的本地工作空间 |
暂存区 | Git 的版本库中包含的暂存区(stage或index),用于存储将要提交的更改 |
Git仓库 | 隐藏目录 .git ,不属于工作区,包含版本库和历史记录 |
基本工作流程:
- 在工作区修改文件
- 将修改的文件快照添加到暂存区
- 提交更新,将暂存区的文件永久存储到 Git 仓库中
配置用户信息:
git config --global user.name '用户名'
git config --global user.email '邮箱地址'
git config --list # 查看所有配置
二、Git 基础操作
- 初始化版本库:
git init
- 将文件添加到暂存区:
git add gitTest.txt
- 查看暂存区状态:
git status
- 将暂存区的文件提交到 Git 仓库:
git commit -m '这里写对文件的描述'
- 查看提交日志:
git log # 显示提交的日志
三、版本回退
在对工作区进行修改后直接提交,而没有将修改保存到暂存区会导致错误:
此时可以使用以下命令对比版本:
git diff HEAD -- git01.txt
理解差异比较:
--
:表示变动前的文件++
:表示变动后的文件@@ -1,2 +1,3 @@
的含义是:-1,2
表示在第一个文件的第1行到第2行的内容+1,3
表示变动后在第二个文件的第1行到第3行的内容
为了查看最近的几个版本,可以使用:
git log -3 --pretty=oneline
返回到上一个版本:
git reset --hard HEAD^ # 回退一个版本
^
:表示上一个版本^^
:表示上上个版本~n
:回退n个版本
要回到特定版本,可以使用版本号:
git reset --hard 3d1e9 # 回到指定的版本
如果版本 ID 消失,可以使用:
git reflog # 查看本地 HEAD 的历史引用记录
四、撤销暂存区文件的提交
如果不小心将文件暂存,可以使用以下命令撤销:
git reset HEAD # 撤销暂存区的文件
五、文件的删除与恢复
- 恢复已删除的文件
若在工作区中误删除了文件,可以通过以下命令恢复:
git checkout -- 文件名
使用这个命令后,可以确认demo01.txt
已成功恢复。这里的 checkout
命令将本地仓库中的文件拉回到工作区。
- 删除文件
若需要删除某个文件,可以使用以下命令:
git rm 文件名 # 删除本地库及工作区中的文件
然后可以用以下命令查看当前文件状态:
git ls-files # 查看当前工作区中的文件
六、远程仓库操作
从远程仓库拉取项目
若要克隆远程项目并在本地创建副本,可以使用:
git clone 项目地址
将本地项目提交到远程仓库
- 首先,将更改的文件添加到暂存区:
git add 文件名
- 然后提交更改并附上描述信息:
git commit -m '描述'
- 接下来,将当前分支重命名为
main
(或其他名称):
git branch -M main
- 最后,推送本地的
main
分支到远程仓库origin
:
git push -u origin main
此后,可以使用 git push
和 git pull
命令进行后续的同步操作。