前言
使用Git 命令前,先了解几个关键词的概念
- 工作区(workSpace)
- 暂缓区(stage/index)
- 本地仓库(Repository)
- 远程仓库(Remote)
Git 常见命令速查表
创建版本库
- 初始化本地git仓库(创建新仓库)
git init
- 配置用户名
git config --global user.name "xxx"
- 配置邮件
git config --global user.email "xxx@xxx.com"
修改与提交
- 查看当前版本状态(是否修改)
git status
- 添加修改的指定文件至index(暂缓区)
git add "xxx"
- 添加修改的所有文件至index(暂缓区)
git add .
- 提交文件 "xxx"为本次提交的说明"
git commit -m 'xxx'
- 合并上一次提交
git commit -a -m 'xxx' ==>>(等价于) git add . git commit -m 'xxx'
git commit --amend -m 'xxx'
- 将add和commit合为一步
git commit -am 'xxx'
查看历史提交
- 显示提交日志
git log
- 显示1行日志 -n为n行 git log -5
git log -1
- 显示提交日志及相关变动文件
git log --stat
- 可查看该文件以前每一次push的修改内容)
git log -p + xxx(文件名)
- 只查看该文件当前这一次的push内容)
git log - p -1 + xxx(文件名
- 显示HEAD提交日志
git show HEAD
- 显示某个提交的详细内容
git show dfb02e6e4f2f7b573337763e5c0013802e392818
- 显示已存在的tag
git tag
- 增加v2.0的tag
git tag -a v2.0 -m 'xxx'
- 显示v2.0的日志及详细内容
git show v2.0
- 显示v2.0的日志
git log v2.0
- 显示所有未添加至index的变更
git diff
- 显示所有已添加index但还未commit的变更
git diff --cached
撤销
- 撤销 add 过的文件 xxx(指定文件名)
git reset HEAR "xxx"
- 撤销上一次 add 过的所有文件
git reset HEAR
- 放弃单个的文件修改
git checkout -- xxx
- 放弃所有的文件修改
git checkout .
分支与标签
- 显示本地所有分支
git branch
- 显示远程、本地所有分支
git branch -a
- 切换至指定分支下
git checkout "xxx"
- 创建新的分支
git branch ”xxx“ xxx为新的分支名
- 创建新的分支并切换至当前新建的分支下
git check -b "xxx"
- 删除指定分支
git branch -d "xxx"
- 强制删除指定分支
git branch -D "xxx"
- 删除tag
git tag -d "xxx"
- 清除本地缓存分支
git remote prune origin
合并已衍合
- 合并远程master分支至当前分支
git merge origin/master
- 合并提交ff44785404a8e的修改
git cherry-pick "ff44785404a8e"
- 将当前分支push到远程master分支
git push origin master
- 把所有本地tags推送到远程仓库
git push --tags
- 获取所有远程分支(不更新本地分支)
git fetch
- 获取所有原创分支并清除服务器上已删掉的分支
git fetch --prune
- 获取远程分支master并merge到当前分支
git pull origin master
- 重命名文件README为README2
git mv README README2
- 将当前版本重置为HEAD(通常用于merge失败回退)
git reset --hard HEAD
暂存
- 暂存当前修改,将所有至为HEAD状态
git stash
- 查看所有暂存
git stash list
- 恢复暂存文件
git stash pop
操作远程
- 本地分支推送到远程仓库
git push origin master
- -u选项指定一个默认主机
git push -u origin
- 不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机
git push --all origin
参考文献:
https://www.runoob.com/note/56524
https://www.yiibai.com/git/git_push.html