主题
git安装与配置
1. Git是什么
Git是一个软件----是一个版本管理工具 Git是分布式代码版本管理工具 类似的还有svn,svn是集中式代码版本管理工具
git开发者:Linux系统的作者–Linus Torvalds
1.2 Git的特点
- Git设计的原理比SVN要复杂一些,开发人员学习和理解的成本略高,它不是一个集中式的管理方式,引入了分布、分支等多个概念。 2.分布式也就是说当从服务器检索好代码到本地的时候,本地会自动创建一个仓库,本地的仓库和服务器的仓库的地位是一样的。
- 提交代码的时候一般是先提交(commit)到本地仓库,然后在pull服务器仓库代码到本地仓库进行合并(merge),最终push到远程仓库。
- 当没有网络的环境下,依然可以方便本地仓库的提交代码和查看代码的历史日志。服务器就算宕机和故障,代码恢复也是轻而易举。
- 可以在本地灵活创建分支,然后提交到服务器上,多个分支来进行版本分化。
建议:
- 其实无论是哪一种版本控制器,都能够满足基本的协同需求
- 首先是看团队成员对版本的熟悉程度来选择。
- 其次建议代码量过大的程序还是使用Git安全性比较高,同时一般情况下,两种版本控制器都会用
- SVN一般用来管理项目,放设计图,各种文档和资料,这种东西没有必要弄得那么麻烦,而且本来就是需要大家共享且改动不大。其次Git专门用来管理代码。
1.3 git的作用
git可以帮我们托管代码,每一次提交信息都会被记录在git仓库
git可以帮我们管理代码,特别是团队开发,每开发一个功能,通过git可以帮我们把代码进行整合
1.4 什么是版本管理?
版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容
2. Git安装及配置
2.1. 下载
下载地址: https://www.git-scm.com/download/
2.2. 安装
安装时一直下一步就行
安装完后,右键会出现 git菜单
,选中 Git Bash Here
,弹出命令窗
输入命令 git --version
查看 git
版本
2.3. git
使用前配置
Git允许多人进行开发,所以我们需要配置用户名和邮箱,这样在 Git仓库里面就能标明代码是谁进行的提交,方便进行管理
方式1:通过命令行的形式进行的配置(常用)
鼠标右键打开Git Bash Here
命令行,或者cmd也可以,只要是命令行窗口都行
2.3.1. 设置用户名与邮箱
sh
## 为计算机上的每个仓库(全局)设置 Git 用户名 邮箱 使用--global参数
git config --global user.name "your name"
git config --global user.email "your email"
## 为一个仓库设置 Git 用户名
git config user.name "your name"
git config user.email "your email"
注意
- 如果要对配置信息进行修改,重复上述命令即可,可以覆盖信息。
- 配置只需要执行一次。
2.3.2. 查看配置
(和设置时差不多,去掉用户名和邮箱即可)
sh
## 查看配置的用户名
git config --global user.name
## 查看 git 配置的邮箱
git config --global user.email
## 查看 git 所有配置信息
git config --list
方式2:通过修改配置文件来配置
也可以通过修改配置文件来进行修改,文件名字叫 .gitconfig
,位置在 C:\Users\系统用户名\.gitconfig
修改里面的配置即可
3. ssh
与https
传输协议
ssh
与https
都是本地与远程仓库同步代码的传输协议,默认是https
协议。
3.1 https
协议
我们正常的clone
代码一般就是采取的https
协议
3.1.1 如何让https
不用每次输入用户名和密码
若你使用https
时每次都要输入用户名和密码,就按照如下操作即可:
- git bash进入你的项目目录,输入:git config --global credential.helper store
- 然后会在你本地生成一个文本,上边记录你的账号和密码。当然这些你可以不用关心。
- 然后你使用上述的命令配置好之后,再修改下本地内容,然后操作一次git add,commi,push,然后它会提示你输入账号密码,这一次输入之后就不需要再次输入密码了。
- 如果密码输入错误,却也给你保存了,这时就去Windows凭据上删除即可。
提示: windows凭据位置:按win键 -> 直接输入‘凭据’二字 -> 凭据管理器 -> windiws凭据
3.2 ssh
协议
ssh
方式表示使用ssh
形式的地址来同步远程仓库代码,使用这种方式clone
时将不在要求输入用户名和密码来验证身份,而是使用ssh
秘钥对来验证身份。ssh方式除了用ssh密钥代替用户名和密码外,其他完全一样。
所谓用ssh密钥
代替用户名和密码即不管是项目发起者还是成员都应该先在本地创建ssh密钥
,然后将公钥
复制进入远程仓库
上的个人setting
中,然后分发地址
时选择ssh
方式的地址。
3.2.1 配置ssh
1. 在本地生成密钥
生成之前可以先检查下本地是否有ssh密钥
,一般为.ssh文件夹
,直接搜索就可以了。一般的位置在C:\Users\系统用户名\.ssh
没有的话就可以在本地打开git bash here
命令窗口,然后执行命令创建密钥了:
sh
## 创建密钥
ssh-keygen -t rsa -C "email"
## 注意:email是你在注册远程仓库账号时使用的邮箱
命令执行后一路回车就可以,当看到提示所创建的SSHkey路径,就说明你的SSH已经创建成功了,然后将这个路径打开,看到两个密钥文件,分别为公钥和私钥
2. 将公钥放入远程仓库
方式一:命令的方式查看公钥 在git bash here
命令窗口输入cat /c/Users/FenDou/.ssh/id_rsa.pub
查看公钥,并将其copy到远程仓库
方式二:直接打开文件 文件所在位置,生成没药的时候的看到的公钥路径就是文件存放的位置,C:\Users\系统用户名\.ssh\id_rsa.pub
用编辑器打开公钥文件,将其中内容复制,然后加入到个人的ssh key中
3. 检查是否配置成功
github检查: ssh -T git@github.com
码云检查 : ssh -T git@gitee.com
在第一次链接时可能会问下你,你输入yes即可
Windows:
Mac:
最后如果出现successful之类的字样那就表示成功了。
4. 通过ssh类型地址clone代码到本地
然后当前项目拥有者就可以通过ssh类型地址进行clone并且无需密码就能push代码了
ok,使用ssh的方式和使用https比起来,就是添加密钥,并且用密钥来代替用户名和密码外,其他没什么区别,
还是一样的分发地址(地址类型不一样),成员通过地址clone项目,然后创建自己的分支,然后合并到开发分支下,然后push到远程。
5. 检查现有 SSH 密钥
在生成新的 SSH 密钥之前,应该检查本地计算机是否存在现有密钥。
注意:GitHub 通过在 2022 年 3 月 15 日删除旧的、不安全的密钥类型来提高安全性。 自该日期起,不再支持 DSA 密钥 (ssh-dss)。 无法在 GitHub.com上向个人帐户添加新的 DSA 密钥。
2021 年 11 月 2 日之前带有 valid_after 的 RSA 密钥 (ssh-rsa) 可以继续使用任何签名算法。 在该日期之后生成的 RSA 密钥必须使用 SHA-2 签名算法。 一些较旧的客户端可能需要升级才能使用 SHA-2 签名。
输入如下命令,以查看是否存在现有的 SSH 密钥。
sh
ls -al ~/.ssh
检查目录列表以查看是否已经有 SSH 公钥。 默认情况下,GitHub 支持的公钥的文件名如下。
id_rsa.pub id_ecdsa.pub id_ed25519.pub
提示:如果收到错误,指示 ~/.ssh 不存在,则表明默认位置中没有现有的 SSH 密钥对。
如果您没有受支持的公钥和私钥对,或者不希望使用任何可用的密钥对,请生成新的 SSH 密钥。 如果你看到列出了要用于连接到 GitHub 的现有公钥和私钥对(例如,id_rsa.pub 和 id_rsa),则可以将密钥添加到 ssh-代理 。