Git

GIT简单了解及学习

其实工作中用的是SVN并没有用到GIT 那我咋会想起来学一下git勒

在学习Netty的过程中发现下载GRpc编译器的时候需要用到git 就干脆来学一下了 反正也就花个两天时间啦

SVN

SVN:集中式版本管理工具
SVN的缺点:

  • 服务器单点故障
  • 容错性差
    一旦服务器挂了 我们客户端就没办法更新代码了

Git

Git是分布式版本管理系统,它是没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要互联网了,因为版本都是在自己的电脑上。
那如何实现多人协作呢? 张三修改了文件A,李四也修改了文件A,这时他们只需将各自的修改推送给对方,就可以互相看到对方的修改了。
Git有一个本地仓库,
SVN必须连接服务器,才能实现对代码的提交、修改
在这里插入图片描述

Git工作流程

  1. 从远程仓库中克隆Git资源 作为 本地仓库。
  2. 从本地仓库中checkout代码然后进行代码修改
  3. 在提交前先将代码提交到暂存区
  4. 提交修改,提交到本地仓库中。本地仓库中保存修改的各个历史版本。
  5. 在修改完成后,需要和团队共享代码时,可以将代码push到远程仓库。

在这里插入图片描述
安装git就略过…

创建本地仓库

使用图形界面创建
在这里插入图片描述
点击Create New Repository 然后选择当前路径即可 ,之后就会创建出.git文件 这就是我们的本地仓库
在这里插入图片描述
使用命令行
在这里插入图片描述

向本地仓库添加文件

创建.txt文件 此文件必须在你的工作看见目录下 就是.git所在的那个文件

成功添加之后图标上会带有一个 ‘+’ 号 其实这时候是将文件保存到了暂存区
在这里插入图片描述

工作区和暂存区

什么是工作区(Working Directory)

工作区就是你在电脑里能看见的目录,比如我的repo1目录就是工作区,在这个目录里的隐藏文件.git 是版本库。

什么是暂存区:(stage或者叫index)

Git的版本库里存了很多东西,其中最重要的就是被称为stage的暂存区,还有Git为我们自动创建的一个分支master,以及master的一个指针HEAD。

在这里插入图片描述继续我们进行commit (将存储在暂存区的文件正真的添加到本地仓库)
在这里插入图片描述
在这里插入图片描述
成功之后文件上会有一个 绿色的’√’ 在这里插入图片描述完成!!

查看本地仓库是否以及存在各个commit的文件

在这里插入图片描述
看我们的文件已经在版本库中存在了
在这里插入图片描述

修改

右键修改过后的文件 直接commit即可,当然也是要写日志信息的。

显示日志 --[历史记录]

选择你本地仓库文件包中的任意位置,右键Show log 可以找到历史记录的相关信息,如果想要对比两个文件,同时选中两个文件并选择 revisions
在这里插入图片描述

文件删除

直接删除即可

文件还原

如果我们不小心删除了文件 点击右键 revert 可以看到我们刚刚删除的文件 还原即可

其实如果我们只是将文件delete了 这时候本地仓库里面还是存在的,我们要实现正真意义上的删除需要在删除文件之后,commit 就和之前提交文件一样。

将Java工程添加到版本库

首先将的工程拖到工作目录下,右键工程 add 先将其添加到暂存区

然后再commit将暂存区的文件提交上去

其实本来我看视频的时候它里面还将了一个忽略文件的,就是将不需要的文件不提交上去,结果这小乌龟不知道是不是因为版本的问题自己帮我全做完了,害的我都没去学他,可惜啊可惜

将本地仓库推送到远程仓库

在GitHub注册账号 并创建远程仓库

注册github账号并创建远程仓库 这里我就不贴出来了 大家应该都早就有了

有两种推送到远程仓库的方式一种是 HTTPS 一种是 SSH

为什么SSH?什么是SSH?

SSH 为 Secure Shell(安全外壳协议)的缩写。SSH是目前较可靠,专为远程登录会话和其他网络服务器提供高安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

为什么HTTPS? 什么是HTTPS?

我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。 现在主流的大型网站用的都是HTTPS传输,比如京东啊 淘宝啊

创建ssh密匙及在gitbuh上配置公钥

打开git命令行窗口 输入ssh-keygen -t rsa 然后一路回车就可以了
在这里插入图片描述
之后会在你window当前用户的目录下的.ssh文件夹中生成一对密钥
在这里插入图片描述

然后我们使用记事本打开公钥,并复制里面生成的key
在这里插入图片描述
现在github就知道我们的公钥是什么了,我们就无需输入用户名和密码就可以和服务器进行通信,可以保证我们的通信是安全的。

和远程仓库建立连接 在这里插入图片描述

打开命令行窗口
在这里插入图片描述
如果你输命令输错了 然后造成的一些问题可以去百度下决绝方案 git都提供给你了 push成功之后查看我们的github远程仓库
在这里插入图片描述

使用HTTPS方式进行PUSH到远端

这里我们使用命令行之外的方法(图形界面的方式)进行推送
在这里插入图片描述

使用小乌龟创建

在这里插入图片描述

推送

在这里插入图片描述

克隆远程仓库到本地

先创建一个文件夹
在这里插入图片描述
使用命令行进行克隆
在这里插入图片描述
图形方式 在文件夹空白处右键克隆即可 进去之后ok就可以了
在这里插入图片描述

分支管理

创建合并分支

​ 在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截至到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

​ 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
在这里插入图片描述
每次提交,master分支都会向前移动一步,随着你不断提交,master分支的线也越来越长。
当我们创建新的分支,例如dev,Git新建了一个指针叫做dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上。
在这里插入图片描述

新建分支并切换

在这里插入图片描述
也可以直接创建分支 :右键看不出 tortaiseGit --> Create Branch 然后再进行切换分支
从现在开始,对工作区的修改和提交技术正对dev分支了,比如新提交一次都,dev指针往前移动异步,而master指针不变。
在这里插入图片描述

分支的合并与删除

使用dev和master分支分别创建一个文件,并且添加到本地仓库。我们会发现如果你切换为master分支就无法看见dev分支创建的文件,你为dev分支的话就无法看见master分支创建的文件。

合并分支

在这里插入图片描述

合并之后你可以再进行提交

删除分支

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值