Git
1. Git结构
2. 命令行操作
2.1 本地仓库初始化
git init
2.2 设置签名
-
项目级别/仓库级别: 仅在当前本地库范围内有效 ,信息保存位置: ./.git/config 文件
git config user.name liuyao git config user.email liuyao9642@gmail.com
-
系统用户级别: 登录当前操作系统的用户范围,在Mac或Linux中,信息保存位置: ~/.gitconfig 文件
git config --global user.name tom_glb git config --global goodMorning_pro@atguigu.com
注:就近原则: 项目级别优先于系统用户级别, 二者都有时采用项目级别的签名。如果只有系统用户级别的签名, 就以系统用户级别的签名为准。二者都没有不允许
2.3 状态查看
查看工作区、 暂存区状态
git status
2.4 添加操作
将工作区中的新建的或者修改的添加到暂存区
git add [filename]
2.5 提交操作
将暂存区的内容提交到本地库
git commit -m "message" [filename]
2.6 查看提交记录
-
查看详细的提交记录
git log
-
一行查看
git log --pretty=oneline
-
一行省略查看
git log --oneline
-
带HEAD指针的查看
git reflog
HEAD@{移动到当前版本需要多少步}
2.7 前进后退
本质就是改变HEAD的指向
-
基于索引值
git reset --hard [索引值]
-
使用
^
符号,只能进行后退操作,一个^
表示一步,可以使用多个git reset --hard HEAD^
-
使用
~
符号,只能后退操作,后面跟数字n,表示n步git reset --hard HEAD~n
2.8 reset的三个参数
- –soft 参数
- 仅仅在本地库移动 HEAD 指针
- –mixed 参数
- 在本地库移动 HEAD 指针
- 重置暂存区
- –hard参数
- 在本地库移动HEAD指针
- 重置暂存区和工作区
2.9 删除文件找回
前提: 删除前, 文件存在时的状态提交到了本地库。
- 操作: git reset --hard [指针位置]
- 删除操作已经提交到本地库: 指针位置指向历史记录
- 删除操作尚未提交到本地库: 指针位置使用 HEAD
2.10 比较文件差异
-
将工作区中的文件和暂存区进行比较
git diff [文件名]
-
将工作区中的文件和本地库历史记录比较
git diff [本地库中历史版本] [文件名]
-
不带文件名比较多个文件
3. 分支操作
3.1 创建分支
git branch [分支名]
3.2 查看分支
git branch -v
3.3 切换分支
git checkout [分支名]
3.4 合并分支
-
第一步: 切换到接受修改的分支(被合并, 增加新内容) 上
git checkout [被合并分支名]
-
第二步: 执行 merge 命令
git merge [有新内容分支名]
3.5 解决冲突
-
冲突表现
-
冲突解决
- 第一步: 编辑文件, 删除特殊符号
- 第二步: 把文件修改到满意的程度, 保存退出
- 第三步: git add [文件名]
- 第四步: git commit -m “日志信息”
- 注意: 此时 commit 一定不能带具体文件名