clear : 终端清屏
command + k : 终端清屏
添加配置
git config [--local | --global | --system] user.name 'Your name'
git config [--local | --global | --system] user.email 'Your email'
查看配置
git config --list [--local | --global | --system]
local: 只对某个本仓库有效
global: 对当前用户的所有仓库有效
system: 对本系统的所有登录用户有效
git status : 查看git工作目录与暂存区的当前状态
git add 文件名 : 将新添加某个文件到git的暂存区中
git add -u : 已经被git管理的 可以用-u来将修改的文件,提交到暂存区
注意:
git add -u : 将文件的修改、文件的删除,添加到暂存区
git add . : 将文件的修改,文件的新建,添加到暂存区
git add -A : 将文件的修改,文件的删除,文件的新建,添加到暂存区
git commit -m'提交信息描述' : 提交git中的改变
git commit -am'描述' : 将工作目录下的修改直接提交到git版本历史库中,不推荐
git commit --amend : 修改最新commit的message
修改老旧commit的message:
git rebase -i 需要修改的commit的父commitid,进入交互界面,只将需要修改的commit记录前的pick改为reword或r,保存退出
进入新交互界面,修改message,保存退出,完成。
把多个commit整理成一个:
git rebase -i 需要合并的最早的commit的父commitid
进入到交互界面,需要合并的最早的commit的记录前的pick不需要变,将需要合并的其他commit记录前的pick改为squash或者s,保存退出,
进入新交互界面,在This is a combination of 4 commits下面添加最新提交信息接口,保存退出,完成。
git rm 文件名 : 删除文件
git mv 文件名 文件新名 : 文件重命名
git log --all : 查看所有分支提交日志
git log --all --graph : 图像化 查看所有分支提交日志
git log : 查看当前分支提交日志
git log -n2 : 查看当前分支最近2次提交
git log --oneline : 查看当前分支简洁的提交日志
git log --oneline --all : 查看所有分支简洁的提交日志
git log -n2 --oneline : 查看当前分支最近2次简洁的提交日志
git log --oneline --all -n2 : 查看所有分支最近2次简洁的提交日志
git log --oneline --all -n3 --graph : 图像化 查看所有分支最近2次简洁的提交日志
git branch -v : 查看本地分支信息
git branch -av :
git checkout master : 切换分支到master
git checkout -b 分支名称 已经存在的分支名称 : 基于某个存在的分支创建分支
git checkout -b 分支名称 之前的某个分支的提交序号 : 基于之前的某个提交记录创建分支
git branch -d 分支名称 : 删除分支
如果报错:“error:The branch is not fully merged”,指这个分支不曾合入到其他任何分支。
在日常开发中,我们通常赋予有意义的分支名,Git判断本分支没和任何别的分支合并,意味着删除存在风险。
如果确认需要删除本分支,使用下面的命令即可:
git branch -D 分支名称 : 强制删除分支
cat 文件名称 : 查看文件的内容
git cat-file 文件hash值: 显示版本库对象的内容、类型及大小信息。
git cat-file -t 文件hash值 : 显示版本库对象的类型
git cat-file -s 文件hash值 : 显示版本库对象的大小
git cat-file -p 文件hash值 : 显示版本库对象的内容
分离头指针:
git checkout commitId 命令
会出现分离头指针的情况,这种情况下比较危险,因为这个时候你提交的代码没有和分支对应起来,当切换到其他分支的时候(比如master分支),容易丢失代码;
但是分离头指针也有它的应用场景,就是在自己做尝试或者测试的时候可以分离头指针,当尝试完毕没有用的时候可以随时丢弃,但是如果觉得尝试有用,那么可以新建一个分支,使用 git branch <新分支的名称> commitId
比较差异
git diff 分支名称 分支名称 : 比较两个分支的差异
git diff 分支名称 分支名称 -- 文件名称 : 比较两个分支某个文件的差异
git diff 分支commitid 分支commitid -- 文件名称 : 比较两个分支某个文件的差异
git diff commitid commitid :查看两次提交的差异
HEAD可以来指代commit:
git diff HEAD HEAD^(表示head的父亲) : 查看两次提交的差异 等同于 git diff HEAD HEAD~1
git diff HEAD HEAD^^(表示head的父亲的父亲) 等同于 git diff HEAD HEAD~2
git diff : 比较工作区和暂存区所含文件的差异
git diff -- 文件名称(可以多个文件名称,中间空格隔开) : 比较工作区和暂存区某个文件的差异
git diff --cached : 比较暂存区与HEAD内容的差异
取消更改
git reset HEAD : 让暂存区恢复成和HEAD的一样
git reset HEAD -- 文件名称(可以多个文件名称,中间空格隔开) : 取消暂存区部分文件的更改
git reset --hard : 清除暂存区与工作目录下的修改
git reset --hard commitid : 工作区、暂存区 、HEAD都回退到commitid提交的状态
git reset commitid : 暂存区 、HEAD都回退到commitid提交的状态 ,工作区不变
git reset --soft commitid : HEAD都回退到commitid提交的状态,暂存区、工作区不变
git checkout -- 文件名 : 让工作区的文件恢复为和暂存区一样
开发中临时加塞了紧急任务怎么处理? 使用存储功能
git stash : 将工作区的修改存储起来,还原成为修改之前的状态
git stash list : 查看存储列表
git stash apply : 应用存储的代码,恢复到工作区,stash区域中的存储不会被删除
git stash pop : 应用存储的代码,恢复到工作区,stash区域中的存储会被删除
stash区域多个stash的情况:
如stash@{2} 和 stash@{1},序号中数字大的代表的是较早的stash。
git stash pop = git stash pop stash@{0}
git stash pop stash@{2}
网友评论