4 Git命令操作
4.1 本地库初始化
- 命令: git init
- 效果:
- 注意:不要随意删除和修改
4.2设置签名
- 形式:
用户名:tom
Email地址: 1511844263@qq.com
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
命令:
项目级别/仓库级别:仅在当前本地库范围内有效
- git config user.name tom_pro
- git config user.email 1511844263_pro@qq.com
- 信息保存位置: ./.git/config
系统用户级别:登录当前操作系统的用户范围
- git config --global user.name top_glb
- git config --global user.email 1511844263_pro@qq.com
级别优先级:
- 就近原则:项目级别优先于系统级别,二者都有时采用项目级别的签名
- 如果只有系统用户级别的签名,就以系统用户级别的签名为准
- 二者都没有是不允许的
4.3 添加提交以及查看状态的操作
git status (查看状态)
- 效果:默认是master分支/主干
vim good.txt (创建文件)
- 效果:发现有未追踪文件,提示把文件放到暂存区
git add good.txt(放到暂存区)
- 效果:提示在good.txt文件中LF将被替换为CRLF(安装时已说明)
git status (查看状态)
- 效果
- git rm --caches good.txt (返回至 添加到暂存区之前的状态)
- git commit good.txt
- :set nu (显示行号,说明在vim编辑器中)
- :wq (编辑退出)
// 一个文件被改变,改变了5行内容
- git status (查看状态)
- vim good.txt (修改文件)
- git status (查看状态,提示updada操作)
- 修改的文件可以不用提交到暂存区,直接提交到分支
- git add good.txt
- git status (查看状态)
- git reset HEAD <file> (把文件恢复到不是暂存的状态)
- git commit -m "my second commit,modified good.txt" good.txt (快捷提交)
//提示文件修改了,修改了两行
4.4基本操作总结
4.4.1 状态查看操作
git status
查看工作区、暂存区状态(工作区、暂存区发生的变化都能看到)
4.4.2 添加操作
git add <file>
将工作区的新建/修改添加到暂存区
4.4.3 提交操作
git commit -m "commit message" <file>
将暂存区的内容提交到本地库
4.4.4 查看历史纪录操作
4.4.5 删除文件并找回
4.4.6 比较文件差异
说明:
- 本地库:历史版本
↑
git commit
↑
- 暂存区:临时存储
↑
新建必须执行git add才能git commit,修改可以直接git commit
暂存区修改可以撤销
↑
- 工作区:写代码
4.5 版本穿梭 Demo操作步骤
- git log (查看当前版本记录)
哈希值,作者,日期
HEAD为指针,指向当前版本
- git log
4.6 查看历史记录
- git log --pretty=oneline (一行显示历史记录,只显示当前版本及更老版本)
- git log --oneline (一行显示历史记录,精简版,只显示当前版本及更老版本)
- git reflog (显示指针移动到当前版本需要的步数,显示全部版本)
- git log
多屏显示控制方式:
空格向下翻页
b向上翻页
q退出
前进后退
- 基于索引值操作 git reset --haed[局部索引值] (推荐)
- git reset --hard e605984
使用^符号:只能后退
- git reset --hard HEAD^^^ (后退三步)
- 注:一个^表示后退一步,n个表示n步
使用~符号
- git reset --hard HEAD~3 (后退三步)
- 注:n表示后退n步
reset 命令的三个参数对比
--soft 参数
- 仅仅在本地库移动HEAD指针
--mixed 参数
- 在本地库移动HEAD指针
- 重置暂存区
--hard 参数
- 在本地库移动HEAD指针
- 重置暂存区
- 重置工作区
添加到暂存区的删除文件找回
- vim apple.txt
- git add apple.txt
- git reset --hard HEAD
删除文件找回总结
- 前提:删除前,文件存在的状态提交到了本地库
- 操作:git reset --hard [指针位置] (恢复提交到本地库的操作)
- 操作:git reset --hard HEAD (恢复提交到暂存区的操作)
4.7 分支管理
4.7.1 什么是分支?
再版本控制过程中,使用多条线同时推进多个任务。
4.7.2 分支的好处?
- 同时并行推进多个功能的开发,提高开发效率
- 各各分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可
4.7.3 分支操作
创建分支
- git branch [分支名]
查看分支
- git branch -v
切换分支
- git checkout [分支名]
合并分支
第一步:切换到接受修改的分支 (被合并,增加新内容)上
- git checkout [被合并的分支名]
第二部:执行merge命令
- git merge [有新内容的分支名] 把分支合并到当前分支
解决冲突
- 冲突表现
冲突的解决
- 1.编辑文件,删除特殊符号
- 2.把文件修改到马满意程度,保存退出
- 3.git add [文件名]
4.git commit -m "message"
- 注意:此时 commit一定不能带文件名