如有笔误,欢迎留言指正或讨论!

介绍git

git 是一个开源的分布式版本控制系统,可以快速、高效的多人管理项目。在处理大小项目上非常出众。

git VS svn

  1. 分布式 vs 集中式

    • Subversion属于集中式的版本控制系统
    • Git属于分布式的版本控制系统
  2. git的速度快,svn速度慢

  3. git commit 不需要网路,而svn需要

git仓库

  • 主要分为三个仓库:工作库暂存库版本库
    • 工作库:项目目录文件
    • 暂存库:项目目录下的 .git 目录里的 index
    • 版本库:项目目录下的 .git/refs/heads 目录里的分支

git流程图

git常用命令

这些命令足够你在项目开发中使用的了,大厂几乎也就这些常用命令

  • git clone 'url' 克隆远端代码
  • git init 初始化git
  • git pull 拉去代码
  • git status 查看状态
  • git restore . 撤销所有的修改记录
  • git diff . 查看差异
  • git add . 添加到暂存库
  • git comit -m'备注' 备注
  • git reset 'file' 回滚文件
  • git checkout dev 切换分支
  • git push / git push origin HEAD 提交代码 / 提交代码到远端
  • git stash list 查看本地暂存文件列表
  • git stash 暂存:当前分支变动文件到暂存区
  • git stash save '备注' 暂存:当前分支变动文件到暂存区,并且备注
  • git stash pop 把暂存区的所有文件拉到本地,并删除暂存区的所有记录
  • git stash drop删除暂存区的所有记录
  • git stash apply 0 把暂存区某次记录的文件拉到本地(不会删除暂存区的记录)
  • git log 查看log日志
  • git reflog 查看提交记录
  • git reset --mixed 'logid' 或 git reset 'logid' 保留当前的修改,回滚到指定的版本(默认,称为混合合并)
  • git reset --soft 'logid' 保留当前修改+回到指定版本的所有改动(称为软合并)
  • git reset --hard 'logid' 撤销工作区中所有未提交的修改内容,回滚到某个记录(称为强制合并)
  • git branch dev 创建dev分支
  • git merge 'branch' 合并分支
  • git branch -vv 查看当前分支以及分支追踪远端的分支的信息
  • git branch -m 修改本地分支名称
  • git checkout -b 'branch' origin master 新增分支并且追踪到 远端master分支
  • git branch -d / -D 'branch' -d删除本地分支 / -D强制删除本地分支
  • git push --delete origin branch 删除远端master分支
  • git rebase 基变