在配置之前,首先来了解一下什么是Git,什么又是GitHub,Gitlab,Gitee。
①Git是一个开源的分布式版本控制系统,可以对项目进行版本管理。 早期是linux之父用来管理linux系统源代码的(linux是和windows一样操作系统 开源免费的操作系统)
②常见的源代码管理工具
github 是一个基于git实现的在线代码托管仓库,提供可视化管理界面,同时提供免费账户和付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库。
gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发。
Gitee 是一个版本控制和协作的代码托管平台(不仅可以托管代码,还可以托管文档与图片资料)。 它可以让你和其他人一起在远程或本地项目上进行协作。
注册完GitHub/Gitee/Gitlab之后,要想更方便的管理代码,需要安装Git环境。
Git地址:Git
点开在首页下载即可,网站会自动下载最新版本的git环境。
打开组合键win+r
,输入cmd打开命令行窗口,并在命令行窗口输入git
命令,出现一下结果证明安装成功。
根据不同开发需求和使用需求,将安装和使用过程分为了单独部署GitHub/Gitee/Gitlab中其中一个的方式,以及同时部署三种开发环境的方式(两种的部署方式和三种的方式一样,不同方式按照不同流程走即可)
部署GitHub/Gitee/Gitlab的方式基本一致,因为我平时以使用GitHub为主,所以这里放了GitHub的部署方式,其他环境的部署方式可以参考这个哦!
打开组合键win+r
,输入cmd打开命令行窗口,输入以下命令:
ssh-keygen -t rsa -C "邮箱"
在使用此命令的时候会出现三段提示信息,这些提示信息不用理会,直接回车下一步即可,知道命令执行结束。
使用此命令会在本地生成一个id_rsa.pub
(公钥)和id_rsa
(私钥)文件,这里我们将使用公钥进行配置。
打开以下文件目录,其中打码部分为当前电脑登录的用户名,找到id_rsa.pub
文件,使用记事本或者是其他编辑器打开(这里安利一个软件Quicklook,打开微软商店可以下载,选中文件敲击文件就可以查看里面的内容,且不用担心误操作修改里面的内容)
复制其中全部内容,打开GitHub网站(登录账户),点击头像下拉的settings,找到SSH and GPG keys
,打开后点击New SSH key
,进行如图的操作:
关于SSH:
Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。通过加密保证了数据的保密性和完整性。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。
传统的FTP、Telnet是再网络中明文传送数据、用户帐号和密码,很容易受到中间人攻击。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
关于SSH Key:
SSH 密钥对 最直观的作用:让你方便的登录到 SSH 服务器,而无需输入密码。由于你无需发送你的密码到网络中,SSH 密钥对被认为是更加安全的方式。
原因是:SSH利用SSH Key来进行前面提到的基于密钥的安全验证。
针对已经单独使用过git全局配置一种开发环境的情况,在同时配置三种开发环境之前,需要清除这些全局配置,如果第一次配置,可直接查看生成ssh keys部分。
需删除之前全局配置的user.name
,user.email
使用以下命令查看当前的配置:
git config --global --list
git config --global --unset user.name "你的名字"
git config --global --unset user.email "你的邮箱"
如遇配置无法删除的情况,可以通过编辑配置文件达到相同的效果:
git config --global --edit
操作命令请查看Linux相关命令,这里不做解释。
新建文件夹keygen
,可在任意磁盘目录;
在此目录右键,git bash here
。
输入命令创建Gitee密钥:
ssh-keygen -t rsa -C "你的邮箱"
回车,此时会提示:
Enter file in which to save the key (/c/Users/honey/.ssh/id_rsa): id_rsa_gitee
输入id_rsa_gitee
,将Gitee密钥和公钥保存到此命名的文件下,剩下步直接回车,不做任何操作。
方法同上,采用相同的命令:
ssh-keygen -t rsa -C "你的邮箱"
但此时需要使用的文件名为:id_rsa_gitlab
方法同上,采用相同的命令:
ssh-keygen -t rsa -C "你的邮箱"
但此时需要使用的文件名为:id_rsa_github
此时在此目录下会生成如下文件:
将这些文件全部拷贝到Windows .shh目录下,即:
C:\Users\Windows登录名\.ssh
需要在.ssh文件夹下新建config文件,先新建config.txt,然后修改文件名去掉后缀。
config文件内容如下:
其中git.xxx.cn
对应你使用的gitlab仓库地址
# gitlab
Host git.xxx.cn
HostName git.xxx.cn
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
User git
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
User git
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User git
在使用之前,需要先在各种环境中添加相应的ssh key,添加的操作在上文已经讲过,这里不再做过多赘述。
在GitHub/Gitee/Gitlab中创建一个远程仓库,新建的仓库是这样的。
其中出现的git命令将是接下来会使用到的命令。
因为我在平时使用的时候经常推送现有的项目到远程仓库里面去,所以这里就以这个为例子。
通过组合键win+r
输入cmd
打开命令提示符,切换到项目文件中去。
git init
此命令在项目文件中会生成一个.git
隐藏文件夹。
单独使用GitHub/Gitee/Gitlab其中一个的时候,可以采用:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
注意这里需要查看gitlab中的Git global setup:
按照其提示配置用户名和邮箱,不然会因为邮箱配置错误而发生错误。
使用此命令仅需说明一次你说谁即可,第二次使用的时候不用重复执行此操作。
与上面的命令相似,但是需要将--global
修改成--local
:
git config --local user.name "你的名字"
git config --local user.email "你的邮箱"
链接远程仓库:
git remote add origin ssh://git@你的仓库地址
git add .
add后面可以跟 . (所有文件/文件夹) 也可以跟 文件名 / 文件夹。提交指定的文件 / 文件夹。
设置提交信息:
git commit -m "填写的信息"
提交暂存区文件 / 文件夹 到远程仓库:
git push -u origin master
还有一个重要命令,可以在每个命令执行的时候查看当前状态。
查看git状态:
git status
此时刷新GitHub仓库页面会发现项目已经提交成功。至此, GitHub/Gitee/Gitlab不管是单个还是多个环境都已经配置成功。
在开发过程中需要更新代码,多人协同开发一个项目等等操作,这时需要使用到git分支这一重要使用方法,此方法建立在远程仓库已经建立并且和本地链接的基础上。
创建新的分支:
git branch 分支名称
切换到指定分支:
git checkout 分支名称
查看当前分支和所有分支的情况:
git branch
将代码提交到当前分支的本地缓存区
git add .
设置提示信息:
git commit -m "完成了登录功能"
切换到主分支:
git checkout master
把刚才分支的代码整合到主分支上:
git merge 分支名称
将修改好的代码提交到远程仓库:
git push
如果想单独在远程仓库创建本地已有的分支,将使用以下方案:
切换到刚才创建的分支:
git checkout login
创建新的分支并提交到此分支里面去:
git push -u origin login
git常用命令:查看
参考:
https://blog.csdn.net/flowerspring/article/details/104962002
https://www.jianshu.com/p/1246cfdbe460
https://gitee.com/mvphp/start_with_Gitee
https://blog.csdn.net/txw0415/article/details/80615045