写在前面

一开始我们先聊一聊版本控制,什么是版本控制呢?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。具体大类分为:

  • 本地版本控制系统
  • 集中式版本控制系统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 initls -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了

 

转载于:https://www.cnblogs.com/evenyao/p/9231424.html

Git 简易食用指南 v2.0相关推荐

  1. 信息安全技术网络安全等级保护定级指南_行业标准 |报业网络安全等级保护定级参考指南V2.0发布,明确保护对象、定级要求...

    近期,中国新闻技术工作者联合会正式发布<报业网络安全等级保护定级参考指南V2.0>. 该指南由中国新闻技术工作者联合会组织网络安全领域的专家.报业技术专家以及业务专家经过多次调研.学习.探 ...

  2. 《Windows Phone 7 用户界面设计和交互指南 v2.0》

    微软 Windows Phone 团队今天发布了<Windows Phone 7 用户界面设计和交互指南 v2.0>(UI Design and Interaction Guide for ...

  3. 信息安全技术网络安全等级保护定级指南_报业网络安全等级保护定级参考指南V2.0发布...

    近期,<报业网络安全等级保护定级参考指南V2.0>正式发布. 该指南由中国新闻技术工作者联合会组织网络安全领域的专家.报业技术专家以及业务专家经过多次调研.学习.探讨后,在原<报业网 ...

  4. 百度官方SEO搜索引擎优化指南V2.0版本发布

    百度互联网创业俱乐部发布了<百度SEO搜索引擎优化指南V2.0>版本了,大家快来下载,  较之第一个版本的基础知识介绍,第二个版本更注重了网站性能和网站可用性,以及网站运营,数据分析方面, ...

  5. 已在页面完全加载前强制排版_公众号写作排版指南v2.0(适配Dark Mode)

    微信的 iOS 版已经适配了 Dark Mode,Android 的深色模式也正在内测中,夜间使用微信的体验将大大提升. 公众号文章是由用户自定义图片,文字颜色,排版等等,很难做到完全适配.这使得当浏 ...

  6. 简易计时器编写 V2.0

    JS编写一个简易计时器程序. 要求: (1)页面包含一个"开始"按钮,一个"停止"按钮,一个"清零"按钮以及一个用于显示时间的文本框. (2 ...

  7. 半年的心血,《PyCharm中文指南》 v2.0 版本,可以发布了

    大家好,我是明哥. 去年 9 月份,我花了两个月的时间,整理发布了第一版的 <PyCharm 中文指南>,初衷是为了帮助那些刚入门 Python,却被 PyCharm 这个庞然大物被劝退的 ...

  8. Git和GitHub学习笔记 V2.0(更新中...)

    文章目录 1. 什么是Git? 2. 为什么要使用Git? 3. Git和Svn的区别 4. Git的历史 5. 版本控制工具应该具备哪些功能 6. 安装Git 7. Git的三区和三种状态 8. G ...

  9. git 简易指南+常用命令

    git 简易指南                      git 常用命令   ----------------------------------------------------------- ...

最新文章

  1. LabVIEW保存、读取配置文件
  2. c matlab 混合编程 调试,64位MATLAB和C混合编程以及联合调试
  3. 局部变量和成员变量的初始值问题
  4. 机器学习与流体动力学:谷歌AI利用「ML+TPU」实现流体模拟数量级加速
  5. [网络安全自学篇] 三十六.WinRAR安全缺陷复现(CVE-2018-20250)及软件自启动劫持机理
  6. C语言 · 前10名
  7. linq判断集合中相同元素个数_iOS开发swift语法梳理:集合Set
  8. php报表数据打印机,通过打印机打印带打印功能的php表
  9. ​马卡龙配色你好夏天PPT模板​
  10. 设计PNG免抠素材|提高调性!透明液态气泡免扣素材
  11. Docker部署微服务应用的架构设计
  12. sublime Text3下sass环境配置(windows)
  13. 学习vim: 常用命令
  14. 面试必掌握之计算机网络
  15. 搜狗输入法 android2.3,搜狗输入法安卓版
  16. 银联支付证书下载及导出流程(带图)
  17. erc20根据合约地址获取所有交易记录
  18. 数据可视化_EChat
  19. 卡塔兰数(Catlan)
  20. PostgreSQL 修改用户密码

热门文章

  1. 两道概率题-供大家周末把玩
  2. html可以导入MySQL吗_将数据从HTML文件(带有嵌入式JavaScript)导入MySQL数据库
  3. 新元素之video,audio,meter,datalist,keygen,output
  4. 一个简单json数据提交实例
  5. qt creator 信号与槽 代码实现 (二)
  6. java 空指针异常(java.lang.NullPointerException)
  7. Python 数据结构视频教程三
  8. golang中的strings.IndexAny
  9. windows下进程间通信的(13种方法)
  10. mybaits十八:内置标签