Git小白到老鸟的进阶之路
点“计算机视觉life”关注,置顶更快接收消息!
小白:师兄,师兄,上次你教我的操作,我傻乎乎的执行了一遍,可是那个Git究竟是什么那?
师兄:小白莫慌,Git就是一种版本控制,小白,你平时写论文,是不是也按日期保存成许多的版本那。

小白:对呀,对呀。
师兄:那开发项目的时候,每个人开发的部分都不一样,需要记录多个版本,这个就是我们伟大的Git做得。
小白:师兄,师兄,那Git岂不是每个开发人员必备的技能了,我要学!我要学!
师兄:那小白紧跟师兄道路,带你走进Git版本控制。
Step1 : Git安装
师兄: 小白,Git的安装上一节可已经交给你了,这次就要考验你的水平了,不过我提供了安装地址给你哦。
MAC下载地址:https://git-scm.com/download/mac
Windows下载地址:https://git-scm.com/download/win
Linux下载地址:https://git-scm.com/download/linux
Step 2: Git配置
师兄: 小白,刚才说了,版本控制是记录每个人开发部分的信息,那使用Git前得配置好个人的信息,让我们知道是谁在提交信息吧。
git config --global user.name 'your_name'
git config --global user.email 'your_email'
其中 git config --global 是对当前用户所有仓库有效
git config --local 是对当前仓库有效
git config --system 是对本系统的所有用户
小白: 师兄,师兄,那如果我配置好了需要查看自己有没有配置好那
师兄: 教你查看对当前用户所有仓库的配置,其他两种你可以举一反三吗?
git config --list --global
Step 3: Git命令
师兄: 小白,你看下面这张图,workspace是工作区,index是暂存区,repository是本地仓库区,我们是在工作区添加修改文件被暂存区管理后提交到本地仓库。

师兄: 小白接下来师兄给你介绍几个命令,你只需要记住即可。
(1)在当前工作区新建一个Git仓库
git init

(2)将当前文件添加到暂存区
git add [file1] [file2]

师兄:小白,你看这里先试用vim在当前工作区创建了一个README.md文件,然后使用git status查看了当前工作区的状态,README.md文件还没有被Git管理,当使用git add提交后,文件已经被Git管理。
(3)提交暂存区当仓库
git commit -m [message]

(4)信息查看
师兄:小白这里我要教你两个查看信息的命令 git status和 git log,git status 就是不管你做了什么变更都可以通过它来查看。git log是你当前分支提交到仓库的历史版本。

师兄:小白你看这里,通过vim重新修改了README.md,又进行了重新提交到仓库,通过git log就可以显示出两次提交的历史版本,如果你需要查看每次提交的具体内容,还可以通过git show 哈希值查看

师兄:小白小白,这里告诉你一个特别有用的工具gitk,可以通过图形化界面查看历史提交信息。
(5)回撤操作
小白:师兄,师兄,如果我不小心提交错的版本到仓库了怎么办?
师兄:小白,别着急这里教你怎么回撤错误的提交。
从仓库回撤最近的一次提交到暂存区
git reset HEAD~1 --soft

回撤暂存区的内容到工作区
git reset HEAD

放弃前面的两次回退操作,回到变更之前,可以使用
git reset 哈希值 --hard
这个哈希值找到前面git log 打印的第二次提交打印的哈希值 回退即可。

师兄:好了,小白,这次就给你说到这里,想要学习更多的Git操作,慢慢跟着师兄混吧。
推荐阅读
师兄带你轻松入门GitHub
实用技能 | GitHub 寻宝指南
如何从零开始系统化学习视觉SLAM?
零基础小白,如何入门计算机视觉?
Git小白到老鸟的进阶之路的更多相关文章
- 2017PHP程序员的进阶之路
2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...
- 浅谈Android进阶之路
过去十年是移动互联网蓬勃发展的黄金期,相信每个人也都享受到了移动互联网红利,在此期间,移动互联网经历了曙光期.成长期.成熟期.现在来说已经进入饱和期.依然记得在 2010-2013 年期间,从事移动开 ...
- Android研发进阶之路
前言 移动研发火热不停,越来越多人开始学习android开发.但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容.市面上也多是谈论知识图谱,缺少体系和 ...
- GO语言的进阶之路-初探GO语言
GO语言的进阶之路-初探GO语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么我们需要一门新语言 Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难 ...
- GO语言的进阶之路-爬虫进阶之路
GO语言的进阶之路-爬虫进阶之路 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分.我们今天要介绍的就是一个简单的网络爬 ...
- GO语言的进阶之路-面向过程式编程
GO语言的进阶之路-面向过程式编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们在用Golang写一个小程序的时候,未免会在多个地方调用同一块代码,这个时候如何优化你的代码呢 ...
- GO语言的进阶之路-Golang字符串处理以及文件操作
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...
- Sass进阶之路,之一(基础篇)
Sass 学习Sass之前,应该要知道css预处理器这个东西,css预处理器是什么呢? Css预处理器定义了一种新的语言将Css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作了.预处理器通 ...
- 【转】2017PHP程序员的进阶之路
2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...
随机推荐
- Centos7安装配置ansible运维自动化工具
准备至少两台机器 Centos7,这两台机器都关闭 selinux IP:106.13.118.132 服务端(ansible) masterIP:148.70.60.244 节点 slaver 服务 ...
- linux 块设备驱动(四)——简单的sbull实例
#include <linux/module.h> #include <linux/moduleparam.h> #include <linux/init.h> # ...
- PythonCookBook笔记——数据结构和算法
数据结构和算法 解包赋值 p = [1, 2, 3] a, b, c = p # _表示被丢弃的值 _, d, _ = p # 可变长解包 *a, b = p # 字串切割解包 line = 'nob ...
- redis文档翻译_LRU缓存
Using Redis as an LRU cache使用Redis作为LRU缓存 出处:http://blog.csdn.net/column/details/redisbanli.html Whe ...
- 【BZOJ1419】Red is good 期望
[BZOJ1419]Red is good Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在 ...
- kong
https://docs.konghq.com/install/centos/ wget https://bintray.com/kong/kong-community-edition-rpm/dow ...
- In Git, there are two main ways to integrate changes from one branch into another: the merge and the rebase.
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
- Redis persistence demystified
https://redis.io/topics/persistence http://oldblog.antirez.com/post/redis-persistence-demystified.ht ...
- vue指令与$nextTick 操作DOM的不同之处
异步更新队列 可能你还没有注意到,Vue 异步执行 DOM 更新.只要观察到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变.如果同一个 watcher 被多次触发,只会被推 ...
- sdut oj 3058 路线冲突问题(BFS+记录路径算法,回溯路径 )
路线冲突问题 题目描述 给出一张地图,地图上有n个点,任意两点之间有且仅有一条路.点的编号从1到n. 现在兵团A要从s1到e1,兵团B要从s2到e2,问两条路线是否会有交点,若有则输出交点个数,否出输 ...