列举了一些在日常中经常使用的高频命令,以备之后查阅。文章此后将继续维护。
配置
# 配置示例
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> # 分支改名