列举了一些在日常中经常使用的高频命令,以备之后查阅。文章此后将继续维护。

配置

# 配置示例
git config --global user.name 'your_name'
git config --global user.eamil 'your_mail'

# 三个作用域
git config --local #只对某个仓库生效, [DEFAULT]
git config --global #对当前用户所有仓库生效
git config --system #对系统所有登陆用户有效

# 查看配置
git config --list -- local
git config --list -- global
git config --list -- system

创建仓库

# 已有项目
git init

# 新建项目
git init your_project

基础操作

git add <your_file> # 管理文件
git status # 查看状态
git commit -m 'msg...' # 提交
git add -u # 更新暂存区中文件变化
git reset --hard #清除暂存区中的变化
git mv <oldname> <newname> #文件更名
git rm <filename> # 删除文件

git log --oneline # 单行历史信息
git log -n4 # 查看最近4次历史
git log --all # 查看所有分支历史
git log --all --graph # 图形化的方式查看所有分支历史


git branch -av #查看本地分支
git checkout -b temp 7e58904 #根据之前的commit创建分支
git commit -am 'xxx' #添加到暂存区并提交commit

git cat-file -t 7e58904 #查看git对象类型
git cat-file -p 7e58904 #查看git对象内容

撤销提交

git reset HEAD~1 #撤销最近一次commit
git revert 7e58904 #撤销执行一次commit,并保留历史记录

分离头指针

git checkout 7e58904 #创建分离头指针
git reflog #可以查看到历史上的分离头指针

删除分支

git branch -D 分支名 #删除分支, 这是强制删除
git branch -b 新分支名 原有分支hash # 恢复被删除的分支, 原有分支hash可以通过git reflog查看

修改提交信息

git rebase -i 7e58904 # 变基,修改此后提交的历史信息
git commit --amend # 修改最后提交信息
git rebase -i 7e58904, reword 7e58903 # 修改历史提交信息

合并历史提交

git rebase -i 7e58904 #通过变基中的squash进行合并, 如果是间隔commit,需要将合并的commit更改顺序到一起

文件比较

# 暂存区和HEAD比较
git diff --cached # 注意提交到暂存区需要使用git add命令,即使已经add过之后又进行修改的文件

# 工作区和暂存区比较
git diff
git diff -- 文件名 # 比较指定文件

git diff <commit-hash> <commit-hash> -- <file> # 比较指定两个commit中指定文件的差异

文件恢复

# 暂存区恢复成HEAD
git reset HEAD -- <file>

# 工作区恢复成暂存区
git checkout -- <file>
git restore xxx  #回滚暂存区

如果操作暂存区使用reset, 如果操作工作区用checkout

删除提交

# 删除最近几次的commit
git reset <commit-hash> --hard #将丢弃暂存区和工作区中的内容

临时切换分支

git stash #创建stash
git stash list # 查看已有的stash
git stash apply # 恢复指定stash,但不删除
git stash pop # 恢复指定stash, 并删除stash记录

忽略文件

.gitignore
### 内容参考 https://github.com/github/gitignore 

远程仓库

git remote -v 
git remote add xxx xxx.git
git push 
git branch -m <old> <new> # 分支改名