目录
config配置操作和设置别名
#查看配置
>git config -l
#config配置级别有本地仓库(--local) 全局(--global) 系统(--system)
>git config --local -l
#下面都已本地仓库配置举例config新增配置
>git config --local --add user.age 12
#删除配置
>git config --local --unset user.age
#配置别名(例如简化git status 成 git st)
>git config --local alias.st status
git配置和本地仓库初始化
#下载安装后需要配置 忘记命令可以用Tab制表符提示
>git config --global user.name=自定义名称
>git config --global user.email=自己的邮箱
#本地磁盘目录初始化
>git init
文件的提交
#提交到git版本库暂存区(后面的点号 ,表示全部文件都提交到暂存区),暂存区就是存放修改了的文件的索引
>git add .
#最终提交到git版本库中的提交区中
> git commit -m '提交注释'
查看日志和比较
git diff 使用
#当前工作区和上一个版本比较
git diff
#当前暂存区和上一个版本进行比较
git diff --cached
#当前工作区和暂存区进行比较
git diff HEAD
日志查看git log
#显示所有提交过的版本信息 ,
> git log
#可以添加 --pretty=oneline 显示简单的信息
> git log --pretty=oneline
# 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
> $ git reflog
#查看提交的合并记录git log --pretty=oneline --graph
git log --pretty=oneline --graph
版本回退
版本回退可以理解成两种模式:
1. 困难(hard)模式。已提交,并且push。撤销提交区的操作
2.简单(sort)模式。已提交,没有push。
困难模式
已提交,并且push。撤销提交区的操作
-
git revert 重做
指定移除的版本,保留之后的提交记录,重新生成一个版本。
如下图,保留新增b的提交内容,但对前一个commit的进行重新修改
执行 git revert -n 版本号 后,该版本的提交就撤销了(不带-n 就进入编辑模式)。
-
git reset --hard
撤销commit 操作 ,舍弃版本号之后的所有提交记录。一般不建议使用
#版本恢复的命令 ^表示回退的版本数 或者可以写成~1 例如表示回退到上2个版本
git reset --hard HEAD^^
或
git reset --hard HEAD~2
# 加版本号
>git reset --hard 363a62dcd154e5db2c32a20e8862caf6c48879cc
简单模式
-
git reset --soft
撤销commit 操作
#撤销工作区的修改(还未执行add操作,并没有保存到暂存区)
>git restore 文件名 (git checkout -- 文件名 此命令也支持撤销)
#不删除工作空间代码,撤销git add.和commit的操作,
>git reset HEAD 文件名
>git checkout -- 文件名
不删除工作空间代码,不撤销git add . ,但要撤销commit操作
git reset --soft HEAD^
删除工作空间代码,撤销git add .和commit操作
git reset --hard HEAD^
-
git reset --mixed
撤销add 和 commit 两个操作
分支操作
#查询所有分支
>git branch
#创建分支
> git branch -b 分支名
#不同分支之间切合
>git checkout 分支名
#强制删除分支(先切换到其他分支,在执行命令) -D 表示强制删除 -d 已经合并分支则可以使用
>git branch -D 分支名
#多人修改文件,造成文件冲突,需要合并
>git merge 其他分支名
常用命令
stash
分支a 代码修改了一部分,甚至编译都报错,但需要紧急修改分支b的问题,这个时候就可以使用stash 先把a分支修改的代码隐藏起来,在切换分支b。
stash 可以理解成一个管道,把东西藏到里面去
git stash 隐藏修改痕迹
git stash list 显示所有隐藏的记录
git stash pop 从管道里面取出来,则会删除stash的记录
git stash apply 从管道中复原,但不会删除记录
忽略文件
在本地仓库下新增.gitignore文件,里面加入忽略的内容,可以去github上找忽略文件的内容,添加到文件里面去
远程仓库打交道还需要配置秘钥,这个自行百度