Git的使用 | 青训营笔记

128 阅读2分钟

Git的使用 | 青训营笔记

这是我参与「第三届青训营 -后端场」笔记创作活动的的第 3篇笔记

为什么需要版本控制?

  • 可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
  • 可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。

版本控制

集中式(SVN)

  • 优点:代码存放在单一的服务器上,便于项目的管理
  • 缺点:服务器宕机、服务器炸了

分布式(GIT)

  • 优点:

    每次存的都是项目的完整快照,需要的硬盘空间对相对大一点(对代码进行机制的压缩,最终需要的空间也不会很大,但回滚速度很快)

    断网的情况下也能开发

    github挂了,每个客户端也有完整的项目

初始化

  • git config --global user.name "liyu"
  • git config --global user.email 1419908263@qq.com
  • git config --list

区域

  • 工作区
  • 暂存区
  • 版本库

常见命令

配置命令

  • git config --list 列出当前配置
  • git config --local --list 列出Repsitory配置
  • git config --global --list 列出全局配置
  • git config --system --list 列出系统配置
  • git config --global user.name "liyu" 配置用户名
  • git config --global user.email "1419908263@qq.com"

分支管理

  • git branch 查看本地分支
  • git branch -r 查看远程分支
  • git branch -a 查看远程和本地分支
  • git checkout <分支名> 从当前分支切换到其他分支
  • git checkout -b <分支名> 创建并建立新的分支
  • git checkout -d <分支名> 删除分支
  • git merge <分支名> 当前分支与指定分支合并
  • git branch --merged 查看那些分支已经合并到当前分支
  • git branch --no-merged 查看哪些分支没有合并到当前分支
  • git branch -v 查看各个分支最后一个提交对象的信息
  • git push origin --d <分支名> 删除远程分支
  • git branch -m <老分支名><新分支名> 重新命名分支

fetch指令

  • git fetch <远程主机名> 将某个远程主机的更新,全部取回本地
  • git fetch <远程主机名><分支名> 取回特定分支
  • git fetch origin <分支名> <本地分支名> 从远程库拉取特定分支

撤销

  • git checkout -- <文件名> 撤销工作区修改
  • git reset HEAD <文件名> 暂存区文件撤销(不覆盖工作区)
  • git reset --hard <版本号> 版本回退

文件状态

  • git status untracked暂存区没文件、midifed、staged使用git add暂存

差异比较

  • git diff 比较工作区与缓存区
  • git diff --cached 比较缓存区与本地库最近一次commit的内容
  • git diff HEAD 比较工作区与本地最近一次commit的内容
  • git diff <版本号> <版本号> 比较两个commit的差异