三区:工作区,暂存区(相当于内存),本地库(.git所在目录)
1. 新建文件并提交到本地库
1.1 常用命令
命令 | 作用 |
git status | 查看本地库的状态 |
git add [file] | 将文件添加到暂存区 |
git commit –m “xxx” [file] | 将暂存区的文件提交到本地库,-m 后面为修改的说明 |
1.2 实验步骤
①查看本地库状态,空空如也
②新建一个文件
vim test.log 或 touch test.log并编辑
此时再次查看git本地库的状态:
说明检测到了test.log文件,但是还无法追踪,建议使用add命令添加!
③将新建的文件,提交到暂存区:git add
④此时再次查看,发现暂存区已经有了文件
⑤将文件从暂存区提交到本地库
此时,会要求为刚刚的提交作一个说明!
也可以直接使用git commit –m “xxxx” [file]提交!
2. 将修改的文件提交到本地库
①修改文件
②此时查看本地库的状态
发现已经追踪到了,文件发生了修改!
③提交修改
先add,再commit!
④此时再查看本地库的状态
3. 版本切换
3.1 常用命令
命令 | 作用 |
git log | 以完整格式查看本地库状态 |
git log --pretty=oneline | 以单行模式查看本地库状态 |
git reset --hard HEAD^ | 回退一个版本 |
git reset --hard HEAD~n | 回退N个版本 |
git reflog | 查看所有操作的历史记录 |
git reset --hard [具体版本号,例如:1f9a527等] | 回到(回退和前进都行)指定版本号的版本, |
git checkout -- [file] | 从本地库检出文件 |
git reset [file] | 从暂存区撤销文件 |
git rm --cache [file] | 从暂存区撤销文件 |
3.2 回退实验步骤
多次更新之后,希望回退到之前的修改版本
①查看更新日志
git log
如果日志过于凌乱,可以使用一个简单格式查看
②单行简单格式查看:
git log --pretty=oneline
③回退到历史版本
第一种: git reset --hard HEAD^
回退到上一个版本,如果想回退多个版本,就多加几个^
第二种:git reset --hard HEAD~n
回退多个版本
3.3 前进实验步骤
①查看所有操作的历史记录
git reflog
②回退到指定的操作
git reset --hard [具体版本号,例如:1f9a527等]
3.4 文件恢复
3.4.1 从本地库检出恢复
git checkout -- [file]
3.4.2 从暂存区撤回
当add一个文件到暂存区后,可以执行commit操作,也可以执行reset撤回操作!
①添加完成后,查看暂存区情况
②git reset HEAD [file]
3.5 删除操作
如果删除一个已经在版本库中的文件!
①删除文件
此时查看,发现虽然在windows的文件系统中已经没有了:
但是,使用git status查看版本库的情况,发现:
提示,使用git add/rm <file>命令来更新此次操作!
之后,再次查看
发现变成了绿色,提交已经成功!
②提交更新
然后执行,提交操作:
再次查看git status,发现完成了此次操作!
3.6 比较文件
减号和加号分别代表两个对比的文件!
3.6.1 将工作区中的文件和暂存区进行比较
$ git diff <file>
3.6.2 将工作区中的文件和本地库当前版本进行比较
$ git diff HEAD <file>
3.6.3 查看暂存区和本地库最新提交版本的差别
git diff --cached <file>
四、Git的工作机制
1. 三区
工作区(Working Directory):就是你电脑本地硬盘目录
本地库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库
暂存区(stage):一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
红色状态代表在工作区,尚未添加到暂存区!
绿色状态代表当前文件已经添加到了暂存区,但是尚未添加到本地库!
暂存区空了,代表在所有文件已经添加到本地库;
2. .git目录
五、分支操作
1. 常用命令汇总
命令 | 描述 |
git branch [分支名] | 创建分支 |
git branch -v | 查看分支,可以使用-v参数查看详细信息 |
git checkout [分支名] | 切换分支 |
git merge [分支名] | 合并分支; 将merge命令中指定的分支合并到当前分支上 例如:如果想将dev分支合并到master分支,那么必须在master分支上执行merge命令 |
git branch –d[分支名] | 删除分支 |
git checkout –b [分支名] | 新建并切换到当前分支 |
2. 分支的概念
不使用分支,就是人与人之间协作;
使用分支,就是小组与小组之间的协作;
从主干中拉取分支,开发完成,将工作,合并到主干。
3. 分支常用操作
3.1 查看分支
git branch -v
3.2 新建分支
git branch [分支名]
3.3 切换分支
git checkout [分支名]
3.4 合并分支
git merge [分支名]
如果在dev分支上面,对一个文件做了修改,这个时候master分支上面对应的文件是没有修改信息的。
因此需要将分支合并!
注意:必须切换到master分支!
3.5 删除分支
git branch –d [分支名]
注意:必须切换到master,才能删除,不能自杀!
3.6 新建切换
git checkout –b [分支名]
4. 处理分支冲突
待完成
编辑冲突的文件,把“>>>>>>>>>”、“<<<<<<”和“========”等这样的行删除,编辑至满意的状态,提交。
提交的时候注意:git commit命令不能带文件名。