git FreshMan指南,五分钟上手(图解)

目录

一、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 小游戏

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值