• git、、


    有学弟想快速上手git,我就发个文章吧。

    git区域划分:

    • 缓冲区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中。
    • 版本库:工作区有一个隐藏目录 .git,就是 Git 的版本库。

    本地、缓冲区、版本库

    1作用

    分布式的代码版本管理工具/团队协作工具

    张三->一段程序A.java

    李四->一段程序B.java

    在两个不同的文件,最传统的手工人工合并

    帮助我们进行代码合作,方便进行团队协作的版本管理工具

    像图片一样,不同的版本就是不同的分支。

    github.com -全球范围内,微软收购了

    gitlab.com

    gitee.com--github.com国内版

    2安装与使用

    第一步安装git客户端

    git官网Git - Downloads

    也可以用yum安装 yum -y install git

    查看版本 yum — version

    brew install git

    第二部设置本地名字和邮箱

    Git 全局设置:

    机器标识

    git config --global user.name "用户名" git config --global user.email "你的邮箱"

    第三步生成ssh key

    ssh-keygen -t rsa -C "你的邮箱"

    第一个回车,默认路径

    第二个使用秘钥的密码也可以为空

    第三次再次输入相同密码也可为空

    我这个是重写过的所以有overwrite

    然后根据路径

    找到pub公钥

    第四步在giteessh公钥添加公钥

    使用

    `公钥可以给别人

    `私钥不要给任何人,只自己使用.

    他俩钥匙都能解开对方的加密

    自己通过私钥加密的链接能用公钥解开,此时就能认定我就是私钥的主人.

    补充:

    `加密证书

    `电子签章

    对称加密与非对称加密

    “对称加密”很好理解,就是指加密和解密时使用的密钥都是同一个,是“对称”的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性。

    举个例子,你想要登录某网站,只要事先和它约定好使用一个对称密码,通信过程中传输的全是用密钥加密后的密文,只有你和网站才能解密。黑客即使能够窃听,看到的也只是乱码,因为没有密钥无法解出明文,所以就实现了机密性。

    1、DES

    数据加密标准(DES)算法 采用的 56 位密钥,每次计算加密 64 位的数据。目前已经被证明可以被暴力破解。所谓暴力破解,就是遍历所有可能的密钥解析数据的方法。举个例子,已知张三和李四传输的是中文,加密算法是 DES,那么拿出一小段数据进行暴力破解,尝试所有的密钥,如果能成功解析出中文词语(词语在词库中可以查到),那么说明破解成功。

    2、AES(推荐)

    为了应对暴力破解等问题,很多团队选择对称加密算法时开始使用高级加密标准(AES),这个加密法用 128 位密钥,并设计了更难破解的算法。推荐在项目中使用

    3、其他

    RC4、DES、3DES、AES、ChaCha20 ,但前三种算法都被认为是不安全的,通常都禁止使用,目前常用的只有 AES 和 ChaCha20。

    对称加密看上去好像完美地实现了机密性,但其中有一个很大的问题:如何把密钥安全地传递给对方,术语叫“密钥交换”。如果你和网站约定的密钥在传递途中被黑客窃取,那就没有安全性可言了。所以需要一种新的可以保证安全传递秘钥的算法。

    非对称加密

    非对称加密也叫公钥加密算法。它有两个密钥,一个叫“公钥”(public key),一个叫“私钥”(private key)。两个密钥是不同的,“不对称”,公钥可以公开给任何人使用,而私钥必须严格保密。

    公钥和私钥有个特别的“单向”性,虽然都可以用来加密解密,但公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密。

    非对称加密可以解决“密钥交换”的问题。网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文

    1、RAS

    RSA 几乎可以说是非对称加密的代名词,它的安全性基于“整数分解”的数学难题,使用两个超大素数的乘积作为生成密钥的材料,想要从公钥推算出私钥是非常困难的。

    10 年前 RSA 密钥的推荐长度是 1024,但随着计算机运算能力的提高,现在 1024 已经不安全,普遍认为至少要 2048 位。

    2、其他

    DH、DSA、ECC 等。

    HTTPS 协议的握手和交换密钥过程需要非对称加密算法;

    应用

    HTTPS 协议的握手和交换密钥过程需要非对称加密算法

    比如利用证书实现 git 账号的免密操作也是基于非对称加密算法

    文件提交

    三个区域

    第五步相关代码

    其实不用代码,直接用idea的git很方便。

    创建 git 仓库:

    mkdir t-mall
    cd t-mall
    git init //初始化本地仓库
    touch README.md
    git add README.md//将本地文件加载到缓冲区
    git commit -m "first commit"//将缓冲区文件加载到本地仓库
    git remote add origin https://gitee.com/dukai01/ant-mall.git//添加一个新的远程仓库
    git push -u origin "master"//推送缓冲区的文件到远程仓库主分支

    用SSH不用密码

    而HTTP需要密码

    如果用了HTTP还想换SSH

    remote rm origin

    然后再重新进行操作

    此时就已经创建完git仓库并且上传文件了

    使用创建好的仓库

    git clone +仓库//拷贝一份远程仓库

    然后git add.

    git status查看追踪情况

    git commit -m

    然后git push

    同步线上仓库文件到本地

    git fetch和git pull

    同名且文件内容相同会报错

    分支管理

    创建分支命令:

    git branch (branchname)

    没有参数的时候就会展示你在本地的分支

    删除分支命令:

    git branch -d (branchname)

    切换分支命令:

    git checkout (branchname)

    当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

    合并分支命令:

    git merge 

    为什么 GitHub 需要 SSH Key 呢?

    因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的。Git 支持SSH 协议,所以, GitHub 只要知道了你的公钥,当你推送的时候,它就能知道这是你,从而允许你推送(这是非对称加密的功能:私钥对数据进行加密,公钥对加密后的数据进行签名验证,可以确定是否是匹配的私钥加密后的数据)。

    当然, GitHub 允许你添加多个 Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的 Key 都添加到 GitHub,就可以在每台电脑上往 GitHub 推送了。

  • 相关阅读:
    中间件 - 分布式协调服务Zookeeper
    nginx源码分析 -异常处理
    Android架构师学习必备学习宝典《Android架构开发手册》
    计算机毕业设计ssm宠物商店信息展示与服务订购系统7q5ic系统+程序+源码+lw+远程部署
    怎么提高外贸开发信的回复率?
    编程思考 : Java中如何用简单的数字描述更多的信息
    JavaWeb学习笔记(缺MVC架构模式)
    OAuth,JWT ,OIDC你们搞得我好乱啊
    Jest单元测试相关
    2023_Spark_实验七:Scala函数式编程部分演示
  • 原文地址:https://blog.csdn.net/hefangxuxing/article/details/136636342