git --version //查看git版本信息
sudo yum remove git -y //卸载git

sudo yum install git -y//安装git

git init

创建本地仓库(最好先创建一个目录,在该目录下输入指令创建git仓库),创建完成后该目录下会存在一个.git文件

仓库配置

git config user.name "xxxxx"      //设置用户名称
git config user.email "xxx@.xxx"  //设置email地址
git config -l                     //查看当前仓库配置

git config --unset user.name      //删除用户名
git config --unset user.email     //删除email

git config --global color.ur true  //打开git的默认颜色配置
git config --global color.ur false //关闭颜色配置

配置时可以加上--global选项,加上后设置的具有全局属性,该机器下的所有仓库都是用该设置,在删除全局属性时也要加上--global

//配置全局信息
git config --global user.name "xxx"
git config --global user.email "xxxx"

//删除全局配置
git config --global --unset user.name
git config --global --unset user.email

仓库信息

工作区:仓库目录下的除.git文件之外的文件都处在工作区

暂存区:将工作区的文件进行git add filename 后,处在工作区的filename就会提交到暂存区,对应.git文件下的index。

版本库:输入commit -m "xxxxxx" 后,会将暂存区的内容提交到版本库。此时在.git目录下还会有一个objects,该目录下的内容都是一个个的commit对象。

个人git笔记,持续学习并补充填写-LMLPHP

 查看信息

git log                   //查看commit信息
git log --pretty=oneline  //更加优雅的显示信息

个人git笔记,持续学习并补充填写-LMLPHP

 git 追踪管理的是修改(增删查改)。

git status                //查看仓库状态,上一次提交到现在是否发生修改
git diff filename         //查看暂存区和工作区filename文件的差异
git diff HEAD -- filename //查看版本库和工作区filename文件的差异

git cat-file -p id        //查看commit id索引的内容


//工作区的内容修改完后,如果想提交到版本库要进行add commit相关操作 
git add filename       //将filename添加到暂存区
git commit -m "xxx"    //将暂存区的内容提交到版本库

个人git笔记,持续学习并补充填写-LMLPHP

版本回退

git reset --soft xxxxx    //只回退版本库的内容,回退到指定commit的id索引处
git reset --mixed xxxx    //回退版本库和暂存区的内容,回退到指定id,该选项为默认选项
git reset --hard xxxx     //工作区、暂存区、版本库的内容都进行回退,慎用

//回退后git log也随之回退

git reflog                //记录本地每一次的提交记录,可以根据里查看id,帮助回退

撤销操作

//只撤回工作区的内容
git checkout -- filename //撤销当前工作区的filename的内容,保持与版本库一致(当修改代码,又后悔了后想回到修改之前时使用)

//撤回工作区和暂存区的内容(即修改文件后,只进行了add)
git reset --mixed HEAD    //HEAD:当前版本库的内容,这里先将暂存区回退到当前版本库的内容
                          //HEAD^:上一个版本库
                          //HEAD^^:上两个版本库的内容...
git checkout -- filename  // 然后再撤回工作区的内容

//撤回工作区、暂存区、版本库的内容
git reset --hard xxx(HEAD版本或者其它版本)      //使用--hard即可实现

删除版本库的文件

1、rm指令删除文件,然后git add 文件名 ,再git commit -m "xxxx"

2、git rm filename  ,然后再git commit -m "xxxxx"

git分支管理

创建/切换/删除 分支

.git中HEAD指针指向master分支,master中存放最近提交一次的commit索引。

个人git笔记,持续学习并补充填写-LMLPHP

git branch            //查看当前库的分支   *表示当前所在分支
git branch xxx        //创建xxx分支
git checkout xxx      //切换到xxx分支(即修改HEAD指向,xxx分支指向最新一次commit)
git merge xxx         //将xxx分支合并
//利用分支操作比直接使用master分支更加安全

git branch -d xxx     //删除xxx分支

分支冲突

git checkout -b xxx //新建xxx分支,并切换到该分支

场景:

当前master中存在一个文件readme,它的版本库内容为:aaa

此时我我们创建并切换到一个新分支dev,在该分支下修改工作区的readme的内容,新增一行bbb,并提交到版本库。

此时再切换回master分支,然后对master下的readme进行修改,新增一行ccc,然后再提交到版本库。此时进行合并,则会发生错误。

个人git笔记,持续学习并补充填写-LMLPHP

个人git笔记,持续学习并补充填写-LMLPHP

git log --graph --abbrev-commit   //图形化形式显示分支信息

个人git笔记,持续学习并补充填写-LMLPHP

分支的切换实际上就是更改HEAD的指向,并将分支的内容修改成最近一次提交的commit id。所以很高效。


06-27 07:16