前言

使用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