目录
3.1 设置用户签名
3.2 初始化本地库
3.3 查看本地库状态
3.4 添加暂存区
3.5 提交本地库
3.6 历史版本
3.7 修改文件
3.8 版本穿梭
小结
命令 | 作用 |
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog、git log | 查看历史版本 |
git reset –hard 版本号 | 版本穿梭 |
3.1 设置用户签名
基本语法
- git config --global user.name 用户名
- git config --global user.email 邮箱
案例实操
- Step1:在桌面或任意位置右键打开Git客户端
- Step2:设置用户签名(@的前面为当前Windows的登录用户)
- Step3:验证有效性(查看配置文件)
- 路径:C:\Users\Bigbeard_Liao\ .gitconfig
几点说明
- Git首次安装成功后,必须设置一次用户签名,否则无法提交代码。
- 用户签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
- 邮箱为虚拟邮箱,现实中无需真实存在,并且Git也不会验证该邮箱的合法性和真实性。
- 此处设置的用户签名和登录代码托管中心(如GitHub)的账号没有任何关系。
3.2 初始化本地库
若想使用Git管理某个项目,就必须让Git获取该项目目录的管理权限(未进行初始化的项目,Git是无法进行管理的)。
基本语法
- git init
案例实操
要求:使用Git管理项目git-demo(此项目下不含任何内容,仅用于演示)
- Step1:鼠标手动点击文件夹,进入项目(Windows路径具有盘符,需要将\修改为/,不便于使用cd命令直接进入)
- Step2:在当前位置(即项目的根目录下)打开Git客户端
- Step3:初始化本地库
- 在项目的根目录下,自动生成.git的文件夹
- 默认情况下,.git文件夹是隐藏的,需要取消隐藏才能看见
- .git文件夹不允许修改,否则Git将无法管理该项目
- Step4:查看.git文件夹
- 命令:ll 或 ll -a(-a显示所有的内容,包括隐藏文件)
- 注:在Git Bash中使用的命令,与Linux命令完全相同。
3.3 查看本地库状态
基本语法
- git status
案例实操
- Step1:首次查看本地库状态(工作区不存在任何文件)
- On branch master:当前本地库位于master分支(默认分支名字)上
- No commits yet:当前还未提交过任何历史版本
- nothing to commit (create/copy files and use "git add" to track):当前没有任何东西需要提交
- Step2:新增文件
- 新增并编辑文件:vim hello.txt
- 查看文件(全部内容):cat hello.txt
- 查看文件(部分内容):tail -n 1 hello.txt(最后一行)
- Step3:再次查看本地库状态(工作区已经存在文件)
- 文件状态1:Untracked files(未跟踪的文件)
- 在工作目录(工作区)中有新文件,但尚未被Git跟踪;
- 这些文件不在Git的版本控制之下,Git并不追踪这些文件的变化;
- 可使用“git add”命令将这些文件添加到暂存区,以实现Git的追踪;然后使用“git commit”将其提交到版本库。
3.4 添加暂存区
基本语法
- git add 文件名:添加单个文件
- git add .:添加所有文件
案例实操
- Step1:查看本地库状态(同“3.3 Step3”)(暂存区不存在任何文件)
- Step2:将工作区的文件添加到暂存区,再次查看本地库状态(暂存区检测到存在文件)
- Git默认将行末换行符进行转换
- Windows的行末换行符:CRLF(Carriage Return Line Feed) \r\n → 回车符+换行符
- Linux的行末换行符:LF(Line Feed) \n → 仅为换行符
- Step3:将暂存区的文件删除(工作区的文件并没有删除),再次查看本地库状态(同“Step1”)
- Step4:将工作区的文件重新添加到暂存区,并查看本地库状态
- 文件状态2:Changes to be committed(已暂存的改动)
- 文件的修改已经被添加到了暂存区(在暂存区生成了快照,等待被提交到版本库),Git已经追踪到该文件;
- 这个状态是通过“git add”命令将文件添加到暂存区后出现的;
- 可使用“git commit”命令将暂存区的改动提交到版本库;或使用“git rm”命令将该文件从暂存区中删除。
3.5 提交本地库
基本语法
- git commit -m "日志信息" 文件名
案例实操
- Step1:查看本地库状态(同“3.4 Step4”)(存在待提交的文件)
- Step2:将暂存区的文件提交到本地库,再次查看本地库状态(不存在待提交文件)
- 不再显示No commits yet,表明当前已经提交过历史版本或拥有版本信息。
- 显示nothing to commit, working tree clean,表明提交后没有文件的新增或修改,工作树是干净的,无任何东西需要再次提交。
3.6 历史版本
基本语法
- git reflog:查看版本精简信息(精简版本号、指针指向、日志信息)
- git log:查看版本详细信息(完整版本号、指针指向、提交者的用户签名Author、提交日期Date、日志信息)
案例实操
- 当前指针HEAD指向master分支的第一个历史版本
3.7 修改文件
第二次修改
- Step1:修改文件,查看本地库状态
- Step2:将工作区的修改文件添加到暂存区,再次查看本地库状态
- Step3:将暂存区的文件提交到本地库,再次查看本地库状态、历史版本
- Git是按照行来维护文件的,修改一行 等价于 删除一行和插入一行
第三次修改
- Step1:修改文件,查看本地库状态
- Step2:将工作区的修改文件添加到暂存区,再次查看本地库状态
- Step3:将暂存区的文件提交到本地库,再次查看本地库状态、历史版本
- 注1:由于当前指针HEAD指向master分支的第3个版本,因此使用“cat”命令查看文件,显示的是第3个版本的内容。
- 注2:尽管存在多个版本,但是工作区从始至终只有一个文件。换句话说,Git进行版本控制并不是通过副本来实现的,而是通过指针实现的。
- 文件状态3:Changes not staged for commit(未暂存的改动)
- 这表示已经跟踪的文件发生了修改,但这些修改尚未被添加到暂存区。
- 这些修改不会被包含在下一次的提交中,除非你使用git add命令将其添加到暂存区。
- 这个状态通常通过git diff查看未暂存的改动。
3.8 版本穿梭
基本语法
- git reset --hard 版本号
案例实操1(向前穿梭)
要求:从历史版本3穿梭回到历史版本2
- Step1:查看历史版本信息(复制历史版本2的版本号)
- Step2:版本穿梭(切换回第2个历史版本)
- Step3:再次查看历史版本信息(此时指针HEAD已经指向master分支的第2个版本)
- 注:工作区中hello.txt文件的内容也会穿梭到相应版本
- Step4:验证指针的指向(查看配置文件)
案例实操2(向前穿梭)
要求:从历史版本2穿梭回到历史版本1
- Step1:查看历史版本信息(复制历史版本1的版本号)
- Step2:版本穿梭(切换回第1个历史版本)
- Step3:再次查看历史版本信息(此时指针HEAD已经指向master分支的第1个版本)
- 注:工作区中hello.txt文件的内容也会穿梭到相应版本
- Step4:验证指针的指向(查看配置文件)
案例实操3(向后穿梭)
要求:从历史版本1穿梭到历史版本3
- Step1:查看历史版本信息(复制历史版本3的版本号)
- Step2:版本穿梭(切换回第3个历史版本)
- Step3:再次查看历史版本信息(此时指针HEAD已经指向master分支的第3个版本)
- 注:工作区中hello.txt文件的内容也会穿梭到相应版本
- Step4:验证指针的指向(查看配置文件)
小结
在Git中,有三种常见的状态,分别是"Untracked files"、"Changes not staged for commit"和"Changes to be committed"。这些状态反映了文件在Git版本控制中的不同变化阶段。
- Untracked files(未跟踪的文件):
- 这表示有新文件在工作目录中,但尚未被Git跟踪。
- 这些文件不在Git的版本控制之下,Git并不追踪这些文件的变化。
- 可以使用git add命令将这些文件添加到暂存区,然后使用git commit将其提交到版本库。
- Changes not staged for commit(未暂存的改动):
- 这表示已经跟踪的文件发生了修改,但这些修改尚未被添加到暂存区。
- 这些修改不会被包含在下一次的提交中,除非你使用git add命令将其添加到暂存区。
- 这个状态通常通过git diff查看未暂存的改动。
- Changes to be committed(已暂存的改动):
- 这表示文件的修改已经被添加到了暂存区,准备提交到版本库。
- 这个状态是通过git add命令将文件添加到暂存区后出现的。
- 使用git commit命令可以将暂存区的改动提交到版本库。
- 这些状态可以帮助你了解工作目录中文件的状态,以及它们在版本控制中的变化。使用git add和git commit命令可以管理这些状态,使代码的变化被记录并保持版本控制的一致性。