Git简单操做及原理

设置签名:

​ 用户名:tom
​ Email地址:goodMorning@atguigu.com
​ git config user.name tom_pro
​ git config user.email goodMorning@atguigu
git

做用:区分不一样开发人员的身份,无其余做用
辨析:这里设置的签名和登陆远程库(代码托管中心)的帐号、密码没有任何关系
命令:(就近原则:两者都没有不容许)
    项目级别/仓库级别:仅在当前本地库范围内有效
    系统级别:登陆当前操做系统的用户范围有效    
    --local / --global / 
查看项目配置保存的位置:cat .git/config

显示日志:

​ git log
​ git log --pretty=oneline
​ git log --oneling 备注:只显示当前版本以前的版本,不显示以后的版本
​ git reflog 备注:HEAD@{移动到当前版本须要的步数}
​ 多屏显示方式:空格向下翻页、b向上翻页、q退出
ui

版本前进后退:

​ 本质:HEAD操作系统

​ 基于索引值操做(最好用)3d

git reset --hard 局部索引值

​ 使用^符号(只能后退)指针

​ git reset --hard HEAD^ 向后退一个版本日志

​ git reset --hard HEAD^^^ 向后退三个版本code

​ 使用~符号blog

git reset --hard HEAD~3索引

reset的三个参数对比:
    --soft:
        仅仅在本地库移动HEAD指针
        
    --mixed:
        在本地库移动HEAD指针
        重置暂存区
    --hard:
        在本地库移动HEAD指针
        重置暂存区
        重置工做区

比较文件差别:

​ git diff 文件名开发

​ 将工做区中的文件和暂存区进行比较

​ git diff 本地库中历史版本 文件名

​ 将工做区中的文件和本地库历史记录比较

分支管理:

分支的好处:

分支操做:

​ 查看分支:git branche -v

​ 建立分支:git branch 分支名称

​ 切换分支:git checkout 分支名称

​ 合并分支:1)切换到主分支上 git checkout 被合并分支名,增长新内容

​ 2)执行merge命令 git merge 有新内容分支名

解决冲突:

Git基本原理

快照:

每个文件节点都有一个hash值

对各个版本存储的信息

建立分支等于建立一个指针

分支的切换:HEAD指向的分支名称切换了

master分支变化了