Git 简易食用指南 v2.0
写在前面
一开始我们先聊一聊版本控制,什么是版本控制呢?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。具体大类分为:
- 本地版本控制系统
- 集中式版本控制系统SVN
- 分布式版本控制系统 Git
Why Git ?
为什么我们要食用 Git 呢?来看看他的优势吧!
Git 诞生于2005,Linux开源社区
- 速度
- 简单的设计
- 允许上千个并行分支
- 分布式
都是他的优点。
在进行简单的介绍之后,接下来我们就可以开始进行食用了。
下载、安装和配置
去到https://git-scm.com/官网下载即可

在终端中使用 git --version 查看git的版本

使用 git config --global user.name ""和 git config --global user.email "" 创建用户和邮箱
使用 git config --list (或git config -l)查看用户列表


创建"仓库"

在IDEA的Terminal中直接输入git init用ls -la查看就发现了目录文件下面已经存在了.git的文件,这些文件是隐藏的。
使用git init直接加名称,在创建文件的同时进行"仓库"的搭建

或者从github上直接克隆、下载到git
复制地址之后 使用git clone https://github.com/xxxxx进行克隆到本地

基本用法
git status ==> 查看仓库状态
下图显示No commits yet,说明还没有历史节点,并说明了以下文件都属于比较危险的状态
所以我们需要进行新建


git add . ==> 将所有文件添加至暂存区
之后再次使用git status命令查看状态,发现之前红色的文件都变色了,说明他们暂时安全了

git commit -m "版本描述" ==> 提交版本或备注描述信息
在提交完版本描述之后,我们再次使用git status查看状态,提示我们nothing to commit,working tree clean。说明所有的更改都保存了
在这个时候,也说明。我们已经有一颗"后悔药"了!,即是我们已经有一个可回溯节点了。

git log ==> 查看详细日志信息
git log -p可以查询具体修改了什么
在输入 git log 之后,我们可以看到 commit 之后有很长一段字符,可以理解为这个节点的"名字"、"身份证号",用来绝对定义这个节点。

回溯!吃"后悔药"!
git reset --hard 456ba1a84e007da35e5e611737aeec9de2581932(commit后面的"身份证",ps:7位以上即可)

如上图,我希望将 blog demo v1.2 版本的代码回溯到 v1.1 的时候
输入 git reset --hard 456ba1a84e007da35e5e611737aeec9de2581932 之后可以看到提示
HEAD is now at cca2043 blog demo v1.1版本

点击Version Control也可以查看版本间的区别和改动

如果有文件被误删掉,可以使用git checkout来找回
git checkout xxx (误删的文件名)
三种状态

modified 已修改 ==> staged 已暂存 ==> committed 已提交
staged 是缓冲阶段,以防错误引入了较大的文件,防止错误的引入

tag标签
我们的代码版本,有小修小改的过程,但当我们的代码大版本确立的时候,就相当于一个里程碑节点,这个时候就需要tag标签用来注解
git tag -a 标签名 -m "备注"
并使用 git tag 查看有多少tag标签
使用git show 查看 tag 标签的详细信息,诸如是谁添加的,添加了什么内容等

如果之前有小的版本我也想用来添加tag标签,但他们的时间节点已经是过去式了,怎么办呢?
这时使用 git tag -a v0.5 -m "备注" + "身份证号" 可以给之前历史记录的回溯节点添加tag标签
我们也可以使用 git checkout v1 来回溯名称为v1的tag标签节点
分支与合并分支
类似于在不同的时间线创造一个平行世界,在一个节点创造出一个分支
使用 git branch "分支名称" 创建分支
在项目中,需要进行分支开发之后再整合功能的时候需要用到分支
分支也可以用来处理一个节点的 bug 问题,找到中间的节点 不影响后面正在开发的时间线,可以用来"救火"

在 master下使用 git merge "分支名"用来合并分支
然后需要在IDEA中手动删除多余的关于提示的代码 "========="
分支 救火之前...

合并分支 救火之后...

远程仓库
在 local 本地创建一套仓库,并且在很远很远的其他地方远程备份另一套仓库,内容都是一样的,甚至可以在添加后续节点的时候,也一样同步过去。

在github上我们创建一个远程仓库 并获得一个url地址



git remote add "远程名称" "远程地址url"
例如这里 我们使用 git remote add github https://github.com/evenyao/easy-blog-demo.git
git remote 可以显示所有连接的远程仓库

使用 git push -u "远程名" "分支名"上传代码
并确认github用户名/密码

然后我们刷新 github 页面,发现代码已经上传上去了,也可以看到之前我们创建的仓库版本

然后在需要容灾的时候 使用 git clone "远程仓库url" 进行拷贝
多人远程协作
git clone "远程仓库url" "用户标记"
例如git clone https://github.com/evenyao/easy-blog-demo.git even
git clone https://github.com/evenyao/easy-blog-demo.git root
在 even 和 root 的协作过程当中,even修改了文件,添加了工程中的一项代码
在even进行git add. && git commit -m "v1.1"添加版本上传之后,root需要使用 git pull 将even修改之后代码拖下来
然后再次进行修改,并也使用git add. && git commit -m "v1.2"添加版本上传之后,even之后也使用 git pull 将root修改的代码拖下来
SSH
当我们创建一个新github项目,也可以使用https地址作为克隆的站点地址
另外一种方式就是SSH,但这种方法必须要进行私钥公钥的配置

我们先点击头像 选择Settings

选择左边栏个人设置中的SSH and GPG keys

在 SSH keys 中 可以点击 generating SSH keys 查看指引
新建 则是选择 New SSH key

在Generating a new SSH key and adding it to the ssh-agent中可以查看完整的创建流程

创建流程指引

演示操作
使用ssh-keygen -t rsa -b 4096 -C "invictus@vip.qq.com"开始进行设置流程

创建完毕之后我们 cd 到这个目录 ls 查看当前 .ssh 文件夹下面的文件 显示有 id_rsa和 id_rsa.pub

使用cat id_rsa.pub命令显示出公钥的相信信息
并将下面的公钥全部复制

将其粘贴到 SSH key 栏中,然后选择 Add SSH key (当然也不要忘了添加Title)

这样一个 SSH key 就算添加完成了
我们也可以通过 git 进行ssh的 clone 和 push了

Git 简易食用指南 v2.0的更多相关文章
- git简易使用指南
git简易使用指南 Git是一个分布式版本控制/软件配置管理软件,原是Linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为更好地管理Linux内核开发而设计.应注意的是,这与GNU I ...
- Git 简易使用指南及补充
Git最简易的使用指南 助你开始使用 git 的简易指南,木有高深内容,;) 安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹, ...
- co-dialog弹出框组件-版本v2.0.0
co-dialog theme 访问git:co-dialog 版本v2.0.0 主题2 coog.app('.theme2').use({ title: 'JUST CHECKING.', mess ...
- git——简易指南
Git对于我来说,只知道是一个版本控制器,类似于乌龟的svn.其中也仅仅会几个常的命令,比如说“更新git pull”.“提交git push”等等,因为记得当初使用的时候,师傅告诉我,对于你不懂这个 ...
- git - 简易指南
http://www.bootcss.com/p/git-guide/ git - 简易指南
- Git简明使用指南[转]
git - 简易指南 助你开始使用 git 的简易指南,木有高深内容,;). Tweet 作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics 其他语言 english, deu ...
- 运维工程师打怪升级进阶之路 V2.0
在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...
- [Android]Android端ORM框架——RapidORM(v2.0)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...
- JuCheap V2.0响应式后台管理系统模板正式发布beta版本
JuCheap V1.* 查看地址: http://blog.csdn.net/allenwdj/article/details/49155339 经过半年的努力,JuCheap后台通用响应式管理后台 ...
随机推荐
- EF Core中Key属性相同的实体只能被跟踪(track)一次
在EF Core的DbContext中,我们可以通过DbContext或DbSet的Attach方法,来让DbContext上下文来跟踪(track)一个实体对象,假设现在我们有User实体对象,其U ...
- Tuple和 ValueTuple
这个类型还是学习C#7.0的语法在看到的,这边单独拿来学习下. 学习地址: https://docs.microsoft.com/zh-cn/dotnet/csharp/tuples https:// ...
- window下安装composer
1.什么是composer 一个智能的下载工具.比如说我的项目要安装yii框架,而yii是依赖于其他东西的,仅仅安装yii是不够的,这样会导致我的项目也不能正常运行:怎么办呢,我们可以一个一个手动的将 ...
- Nginx负载均衡+代理+ssl+压力测试
一.Tomcat安装 1.下载jdk,Tomcat,解压到/usr/local/ 2.配置jdk环境: # vim /etc/profile export JAVA_HOME=/usr/local/j ...
- Oracle 11gR2 RAC 11.2.0.4 全自动打11.2.0.4.20170418 psu 步骤
说明:此次环境的patch p6880880_112000_Linux-x86-64.zip 和 p25476126_112040_Linux-x86-64.zip均放在/soft目录, 且grid和 ...
- HDU Ellipse(simpson积分)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- Windows 安装 MongoDB 并开启认证
下载 可以自行上官网找需要的版本,Windows系统各个64位版本下载地址: http://dl.mongodb.org/dl/win32/x86_64 安装 正常的软件安装流程,这里就不细讲了. 配 ...
- PHP读取zip包
$filename = $this->upload->data('file_name'); //得到文件夹(此处是CI框架上传文件之后得到文件名称) $file_root = 'can ...
- day 15 装饰器
装饰器(重点,难点) 开闭原则: 对功能的扩展开放 对代码的修改是封闭的 在目标函数前和后插入一段新的代码.不改变原来的代码 通用装饰器写法: # 存在的 ...
- I2C驱动
在I2C总线驱动下,也是硬件设备和驱动分离,使以就需要通过它们的名字来匹配,这样驱动的probe函数才能被调用 查看linux内核的Documents目录下的说明文件,可知构造i2c设备有4种方法: ...