Git的结构
Git的俩种使用方式
团队协作的方式:本地仓库的开发方式,
团队外部协作:
Git的命令行操作
git命令与Linux命令很多一样
1.本地仓库初始化,使用cd 可以切换工作目录
命令: git init
初始化仓库,生成.git文件
效果:
注意:.git目录下存放的是本地库相关的子目录和文件,不能删除和胡乱修改
git签名:
项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name tom_pro
git config user.email goodMorning_pro@qq.com
信息保存位置:cat .git/config文件
系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom_glb
git config --global goodMorning_pro@qq.com
信息保存位置:~/.gitconfig文件
级别优先级:
就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
如果只有系统用户级别的签名,就以系统用户级别的签名为准
二者都没有,不允许
添加,提交以及查看状态
将文件从工作区提交到暂存区
将文件从暂存区撤销
将文件从暂存区提交到本地仓库
基本操作
状态查看操作
git status
查看工作区暂存区的状态
添加操作
git add [file name]
将工作区的“新建、修改”添加到暂存区
提交操作
git commit -m "commit message " 文件名
将暂存区的文件提交到本地仓库
查看历史记录操作
最完整 git log
多屏显示控制方式:
空格向下翻页
b 向上翻页
q 退出
简洁显示:git log --pretty=oneline
git log --oneline
git reflog 显示到某个版本需要移动到几步
版本前进后退
1.基于索引值操作(推荐)
git reset --hard 索引值
2.使用^符号:只能后退
向后退一步
向后退三步
git reset --hard HEAD^^^
3.使用~符号
后退n步
git reset --hard HEAD~n
reset三个命令参数的对比
--soft参数
仅仅在本地库移动HEAD指针
--mixed参数
在本地库移动HEAD指针
重置暂存区
--hard参数
在本地库移动HEAD指针
重置暂存区
重置工作区
删除文件并找回
回退到之前新建的版本
前提:删除前,文件存在时的状态提交到本地库
操作:git reset --hard[指针位置]
删除操作已经提交到本地库:指针位置指向历史记录
删除操作尚未提交到本地库:指针位置使用HEAD
比较文件差异
git diff [文件名]
将工作区的文件和暂存区的进行比较
git diff [本地库的历史版本]【文件名】
将工作区的文件和本地库的历史记录比较
不带文件名,比较多个文件 git diff HEAD
分支管理
1.什么是分支?
在版本控制过程中,使用多条线同时推进多个任务
2.分支的好处
同时并行推进多个功能开发,提高开发效率
各个分支在开发过程中,互不影响
3.分支的具体操作
查看所有分支:
创建新的分支
git branch hot_fix
切换分支
合并分支
第一步:切换到接受修改的分支上,(被合并,增加新内容) git checkout 被合并的分支名
第二步:接受修改 git merge 指定分支名
4.分支冲突
俩个人修改一个文件的同一位置,且修改内容不一样,发起冲突
hot_fix 和master同时修改一个文件后,hot_fix合并master请求
冲突的表现:
解决方案:商讨,解决,人为修改
1.修改冲突文件,编辑文件,删除特殊符号,修改满意退出
2.提交到暂存区
3.提交到本地仓库,但是不能加文件名
git的基本原理
哈希:
哈希是一系列加密算法,各种不同的哈希算法虽然加密强度不同,但是有以下共同点
1.不管输入数据的数据量有多大,输入同一个哈希算法,得到加密结果长度固定
2.哈希算法确定,输入数据确定,输出数据能保证不变
3.哈希
4.哈希算法不可逆
查看远程登录url
给远程仓库url重命名
推送到远程仓库分支
弹出github登录页面