1. Git工作机制
- Workspace: 工作区,就是你平时存放项目代码的地方
- Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
2. Git安装
git下载地址
3. Git设置用户签名
- git config --global user.name “userName”
- git config --global user.email “emailAddress”
- 注意:如果不设置,后面提交数据的时候就会报错
4. 初始化本地库
基本语法:git init
生成.git,千万不能修改里面的文件
5. 查看本地库
基本语法:git status
- 初始化,不存在任何文件
“On branch master”:目前在master分支
“No commits yet”:还没有提交过文件
“nothing to commit”:没有文件可以提交
- 现在新建一个hello.txt
检测到没有被跟踪的文件
6. 暂存区的添加和删除
添加:git add hello.txt
删除:git rm --cached hello.txt
7. 提交本地库
基本语法:git commit -m "日志信息" 文件名
8. 查看版本信息
基本语法:git reflog
基本语法:git log
9. 修改文件(对hello.txt文件修改了内容)
- 查看状态(红色modified:修改但未被add)
- 第二次add文件(绿色modified:修改且被add)
- commit文件(修改=1 insertions + 1 deletion)
- 此时工作区又是干净的了
- 此时HEAD指针指向第二版本
10. 版本穿梭
基本语法:git reset --hard 版本号
-
首先查看文件版本
-
跳转到指定版本
-
此时文件的内容就回到了first commit时的内容了
-
基本原理
11. 分支
查看分支: git branch -v
创建分支: git branch 分支名
切换分支: git checkout 分支名
把指定分支合并到当前分支上: git merge 分支名
- 查看分支
- 创建分支
- 切换分支
- 合并分支(冲突合并)(正常合并类似如下)
- hello.txt文件(原内容:hello,world)
- master分支的hello.txt文件(修改内容:hello,world 合并后)
- hot-fix分支的hello.txt文件修改(修改内容:hello,world 合并前)
- 现在来合并master分支和hot-fix分支,看看会发生什么
- 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必须人为决定新代码内容。
- (master|MERGING)表示合并失败,仍在合并中,这时候就需要我们手动合并
① 去掉特殊符号<<<<<<<HEAD、=====、>>>>>>hot-fix
② 然后对内容进行修改
③ git add hello.txt
④ git commit -m ‘‘submit after merging’’(这里不能再加上hello.txt文件名)
- 由于合并的是在master分支上,所以hot-fix分支上的内容没有改变