写给自己看的Git使用指南

写这篇blog的初衷是,在带教新人使用sourcetree+gitlab管理脚本时,发现自己磕磕巴巴无力解释清楚Git是个什么鬼,因此决定系统学习并以文章的形式整理下助消化。

拜读了廖雪峰的《Git教程》,非常浅显易懂,也可以按目录检索章节内容,耗费一小时左右阅读时间就能把Git的使用安排得明明白白。所以这篇文章并不再搬运或者是再诠释其中的内容,而是按我个人的思考和阅读习惯,写一个浓缩简短版的使用指南。


Why Git

Git 至少解决了版本管理和多人协作两个问题。

  • 版本管理:相当于后悔药了,在关键节点及时保存和提交版本,写好版本注释,就能任意返回之前的某一个版本。不过分析师写的SQL一般都不复杂,所以不太需要多个版本。

How it Works

Git原理

工作区 -> 暂存区:通过git add <filename>提交工作区的文件修改到版本库的暂存区。暂存区的目的就是跟踪修改。

  • 如果要撤销工作区的修改,通过git checkout -- <filename>使其退回到已添加到暂存区的状态,如果文件未添加到暂存区,则撤销退回到和版本库一样的状态。

暂存区 -> 分支:通过git commit -m <message>提交到暂存区的所有修改到master或其他的分支上。

  • 如果未提交版本,要撤销暂存区的提交,通过git reset Head <filename>把暂存区的修改返回到工作区。

  • 如果已提交版本,通过git reset --hard Head^返回上一个版本,或通过git reset --hard <commit id>返回之前的任一版本、或重回“未来”的版本。<commit id>可通过git loggit reflog来查询提交历史和命令历史。emmmm传说这个命令不要轻易用...

Branch

创建分支:通过git checkout -b dev创建并切换到dev分支上。以上语句实际可拆分成两句。

  • git branch <branchname> 创建一个分支
  • git checkout <branchname> 切换到一个分支上,有别于撤销工作区修改的语句`git checkout -- <filename>,注意区分

合并分支:通过git merge <branchname>合并某分支到当前分支上

解决冲突:遇到版本冲突的无法自动合并的,需要手动解决冲突,重新提交修改。多人协作中,可按以下步骤尝试:

  • 先使用git push origin <branchname>推送自己的修改
  • 如推送失败,说明远程分支比本地分支更新,需要用git pull拉取并合并
  • 如合并失败,需要手动解决冲突,再次使用git push origin <branchname>推送

Git CHEAT SHEET
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,723评论 4 54
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 1,456评论 0 3
  • (预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料) 一:Git是什么? Git是目前世界上最先进的...
    axiaochao阅读 1,958评论 1 8
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,604评论 0 13
  • Devin_a1bf阅读 211评论 0 0