一、简介
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
特点1:去中心化
特点2:分支
Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 区别点:
-
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
-
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
-
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
-
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
-
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
二、下载安装
下载地址:
点击下一步即可安装成功
选择git使用的编辑器
行末换行符转换,使用默认值
检测安装成功,任意窗口或桌面都可以右键,出现下面两个选项即可
三、SSH key
ssh key 介绍
我理解的就是每台电脑上会产生出一个ssh key,然后自己有一个远程账户,但是自己有可能有很多台电脑,包括家里的电脑还有公司的电脑,我们可以在任意一台电脑上工作,但是如果想要每台电脑都和远程版本库时刻保持着通讯,
就需要将每台电脑的ssh key添加到远程账户,添加到远程版本库之后,远程版本库就会和已经添加的电脑进行通讯而不会和其他电脑进行通讯
建议:所有的Git操作都通过ssh key进行,因为简单
ssh key 使用
右键打开
第一步:本地电脑配置
1、配置github账号及邮箱(这个上面已经配置过,可跳过)
git config --list #查看是否配置远程账号2、检查下自己之前有没有已经生成ssh
cd ~/.ssh
ls错误:
bash: cd: /c/Users/Administrator/.ssh: No such file or directory
当没有生成过ssh时,执行cd ~/.ssh命令会报上面错误;3.生成(或删除)秘钥
ssh-keygen -t rsa -C "2228665746@qq.com"//这里的邮箱要换成自己注册时的邮箱
接着按3个回车即可。4.执行命令完成后,默认会在window的C:\Users\Administrator\.ssh下面生成如下两个名称的文件:
C:\Users\Administrator\.ssh
id_rsa(私钥,不能泄露出去)
id_rsa.pub(公钥)
known_hosts(不用管)
第二步:远程github仓库配置
1.登陆到自己的gitbub,点击右上角的倒立小三角形。选择 settings
2.选择SSH and GPG keys
3.点击右边的New SSH key
4.随意填入一个title,然后 key 中粘贴刚才复制的id_rsa.pub文本,点击 Add key 这样就大功告成
5.github官网有时候会要你输入登陆密码才能添加ssh key。输入密码即可
测试SSH连接
1.输入测试命令
ssh -T git@github.com
ssh -T git@gitee.com
如果显示如下内容,表示ssh key添加成功:$ ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi xiaomage26! You've successfully authenticated, but GitHub does not provide shell access.