目录

一、Git 工作流程

二、Git 工作区、暂存区和版本库

基本概念

三、Git 的基本操作

创建仓库命令

提交与修改

提交日志

远程操作

四、Git 分支管理

五、Git 查看提交历史


一、Git 工作流程

基本流程如下

  • 克隆 Git 资源作为工作流程。
  • 在克隆的资源上添加或修改文件。
  • 多人修改时,可以更新资源
  • 提交前查看历史修改记录
  • 提交修改
  • 提交完成后,后续发现错误,修改后再提交


二、Git 工作区、暂存区和版本库

基本概念

  • 工作区:就是你在本地电脑能看到的目录。
  • 暂存区:一般存放在 .git 目录下的 index 文件(.git / index)中,所有也被叫做索引。
  • 版本库:工作区有一个隐藏目录 .git, 这个不算工作区,而是 Git 的版本库。


  • 图中左侧为工作区,右侧为版本库,版本库中有区域暂存区,标记master的是master分支所代表的目录树。
  • 图中的这个HEAD 实践是一个指向master分支的一个游标,图中出现head的地方可以用master替换。
  • 图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。

  • 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

  • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。

  • 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

  • 当执行 git rm --cached <file> 命令时,会直接从暂存区删除文件,工作区则不做出改变。

  • 当执行 git checkout . 或者 git checkout -- <file> 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。

  • 当执行 git checkout HEAD . 或者 git checkout HEAD <file> 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。


三、Git 的基本操作

本文章只介绍常见的 Git 的命令。

Git 完整命令手册地址: Git - Reference

创建仓库命令

命令 说明

git init

初始化仓库。
git clone

拷贝一份远程仓库,也就是下载一个项目。

提交与修改

命令 说明

git add

从本地添加文件暂存区。
git status 查看仓库当前状态,显示变更的文件。
git diff 比较暂存区和工作区的差异。
git commit 提交暂存区到本地仓库。
git reset 回退版本(我用的比较少)。
git rm 删除工作区文件。
git mv 移动或重命名工作区文件。

提交日志

命令 说明
git log 查看历史提交记录。
git blame <file> 以列表形式查看指定文件的历史修改记录

远程操作

命令 说明
git remote 远程仓库操作。
git fetch 从远程获取代码库。
git pull 下载远程代码并合并。
git push 上传远程代码并合并。

四、Git 分支管理

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。

作者理解:

在一个团队中,每个人负责的板块不同,所写的代码风格不同,实现的代码依赖不同,但是在master上,大家都功能都是相辅相成的,但是不能直接上传到master上(你不能把你的测试代码上传,有可能会引起其他功能出问题。)最好是每个人都在自己的分支上开发自己的功能实现,测试完毕后,在合并到master上。

命令 说明
git branch (branchname) 创建分支
git checkout (branchname)

切换分支命令

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

git merge 合并分支命令
git branch

列出分支

(-b)(branchname)立即切换到该分支下

(-d)(branchname)删除分支

git merge 分支合并

(这个不太好给演示,等后续附加图片)


五、Git 查看提交历史

命令 说明
git log 查看历史提交记录。
git blame <file> 以列表形式查看指定文件的历史修改记录。
git log --author 查找指定用户的提交日志可以使用命令

git log --since

git log -- before

例如:如果我要看 Git 项目中三周前且在四月十八日之后的所有提交
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

也可以用 --oneline选项来查看简洁的历史记录版本。

还有 --graph选项,是拓扑图哦。

最后可以附加一个学习Git的的有趣网站,学会它就跟打游戏一样!觉得不错可以三连支持一波!Git 小游戏

git FreshMan指南,五分钟上手(图解)相关推荐

  1. 自动调试自动编译五分钟上手

    Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面.更重要的是 Browsersync可以同时在PC.平板.手机等设备下进项调试. ...

  2. git 代理 git_五分钟解释Git的要点

    git 代理 git by James Okunlade 詹姆斯·奥昆拉德(James Okunlade) 五分钟解释Git的要点 (The essentials of Git explained i ...

  3. MQ(message queue)使用 Spring整合 MQ下载 五分钟上手使用

    MQ百度云下载 链接:https://pan.baidu.com/s/1h3s1RF4FE6hN7aUlLuDmkA 提取码:6bit 1.ActiveMQ简介 什么是ActiveMQ ActiveM ...

  4. AirTest 基本使用及框架浅剖析——五分钟上手制作游戏辅助

    简介 Airtest Project 是为编写自动化脚本,达到提升测试效率的一整套解决方案.它可以轻松的扩展到多平台.多引擎上:如基础的 Android和IOS手机应用.App:Windows上的应用 ...

  5. 五分钟上手Premiere——小白的视频剪辑笔记

    Adobe Premiere是当下最为流行的视频剪辑软件之一.之前看别人用过一次,后来恰好有剪辑视频的需要,于是按照残存的记忆摸索之,辅以百度和"51自学网"视频少量,仓促间倒也做 ...

  6. MAthJax入门教程(五分钟上手)

    最近在研究,在页面中显示一些数学公式.搞得我很头疼. 据说MathJax会统一这已领域.所以去学了学.网上教程特别多.繁杂. 说的清楚的特别少. 我是这么跑通的,: 1.在官网下载代码地址为:http ...

  7. 2015年01月30日 - Git五分钟教程

    2019独角兽企业重金招聘Python工程师标准>>> 许多人认为Git太混乱或是复杂的版本控制系统,这篇文章是面向一些人想快速上手使用Git, 对于大多数基本需求这篇文章涵盖了使用 ...

  8. 【快速上手系列】五分钟即可学会的easyUI的简单使用教程

    [快速上手系列]五分钟即可学会的easyUI的简单使用教程 一个简单方便的前端框架 引入文件 引入两个css样式和三个js <!--引入easyUI的样式 --> <link hre ...

  9. access 提供程序无法确定object 值_Python | 加一行注释,让你的程序提速10+倍!numba库十分钟上手指南...

    如果你在使用Python进行高性能计算,Numba提供的加速效果可以比肩原生的C/C++程序,只需要在函数上添加一行@jit的装饰.它支持CPU和GPU,是数据科学家必不可少的编程利器. 之前的文章 ...

最新文章

  1. 如何得到Mysql每个分组中的第N条记录
  2. Zabbix 2.4.4升级到Zabbix 3.2.6
  3. metasploit 一款开源的渗透测试框架
  4. 离散数学范式c语言实验报告,离散数学实验报告-利用真值表法求主析取范式及主合取范式的实现...
  5. Java爬虫技术(一)普通网站爬取图片
  6. 【并查集】小 X 的液体混合
  7. 雨林木风win11 64位全新专业版系统v2021.08
  8. python定义变量类型列子_Python系列课程-变量类型
  9. 网络安全基础——NTFS安全权限
  10. 浅谈电力巡检机器人功能及特点
  11. CentOS7各个版本镜像下载地址及说明、Everything版
  12. 系统自带恶意软件清理助手
  13. 厦大C在线实验题3 分数约简
  14. Sentinel demo
  15. matlab 机床,基于MATLAB的数控机床控制系统的设计及仿真
  16. vimium快捷操作
  17. 如何访问部署在家里的服务器(家庭宽带能够申请公网IP)
  18. 最好的QA(质量保证)测试人员面试问题
  19. 2018/3/12-2018/3/20
  20. 中软国际php面试题,中软国际面试题及答案

热门文章

  1. DDN | 时刻准备,马上出发!
  2. 处理火绒弹窗拦截无法开机启动
  3. 地图省界线什么样_echarts geo 下的regions 单独修改地图省份界线样式与颜色
  4. 铁路及工程相关专业术语自动查询
  5. 宏碁 (ACER) TravelMate P449-G2-MG安装Win7系统
  6. html 高度塌陷,前端高度塌陷问题
  7. 点击按钮播放声音简单实现。
  8. html按钮按下效果_Animate/FLASH如何为按钮添加声音(无代码)
  9. SMTP-POP3协议简介以及使用Telnet客户端收/发邮件(163邮箱)
  10. 重新规划,希望是转机