1.SSH(Secure Shell)是一种安全协议,在你的电脑与GitLab服务器进行通讯时,咱们使用SSH密钥(SSH Keys)认证的方式来保证通讯安全。html
2.建立 SSH密钥,并将密钥中的公钥添加到GitLab,以便咱们经过SSH协议来访问Git仓库。git
SSH 密钥的建立须要在终端(命令行)环境下进行,咱们首先进入命令行环境。一般在OS X和Linux平台下咱们使用终端工具(Terminal),在Windows平台中,可使用Git Bash工具,git客户端安装目录下git-bash.exe文件小程序
(1)若是尚未 ~/.ssh 目录,能够手工建立一个(mkdir ~/.ssh),以后再经过cd ~/.ssh进入SSH目录windows
(2)能够经过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;若是SSH目录为空,咱们开始第二步B,生成 SSH 密钥;若是存在id_rsa.pub这个文件,说明你以前生成过SSH密钥,如何添加多个sshkey也不难,通常不多用,这里不介绍了微信小程序
咱们经过下面的命令生成密钥,请将命令中的YOUR_EMAIL@YOUREMAIL.COM替换为你注册gitlab时用的Email地址安全
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"bash
在SSH生成过程当中会出现如下信息,按屏幕的提示操做便可:服务器
Note:Enter passphrase (empty for no passphrase) :时,能够直接按两次回车键输入一个空的 passphrase;也能够选择输入一个 passphrase 口令,若是此时你输入了一个passphrase,请牢记,以后每次提交时都须要输入这个口令来确认。微信
实践过程当中建议不要密码。ssh
SSH密钥生成结束后,根据提示信息找到SSH目录,会看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。咱们能够经过cat命令或文本编辑器来查看id_rsa.pub公钥信息。
(1)经过编辑器。使用你熟悉的文本编辑器,好比 记事本、Sublime Text等软件打开id_rsa.pub,复制里面的全部内容以备下一步使用。
(2)经过cat命令。在命令行中敲入cat id_rsa.pub,回车执行后命令行界面中会显示id_rsa.pub文件里的内容,复制后在下一步使用。
(3)经过直接使用命令将id_rsa.pub文件里的内容复制到剪切板中
1.打开gitlab的Profile配置页面,选择SSH Keys.
2.添加SSH公钥。填写Title和Key,其中Title是Key的描述信息,Key是上面复制的SSH公钥的内容,直接粘贴到输入框中保存便可。
在提交代码前,还须要设置下git的用户名和邮箱(最好用英文,不要出现中文),这样提交记录才会在gitlab上显示带有你名字的记录。
若是项目存在,须要导入到gitlab,能够经过命令行直接将项目导入上去。
cd "本地存在项目的路径" git init git remote add origin git@gitlab.com:USERNAME/PROJECTNAME.git git add . git commit -m 'first git demo' git push -u origin master
git clone"你的项目地址"
4. 代码回滚
若是咱们提交了(git commit)代码,而且已经推送(git push)到了远程分支,忽然发现版本不对,咱们想要撤回来,该怎么作?
三种方式:
a. git revert commit号;经过git revert来进行覆盖,也就是找到须要撤回的版本对应的版本号,经过git revert 加上提交的ID来进行线上覆盖。
b. git reset --soft commit号 ;经过git reset --soft进行重置,这个方式也是我我的比较喜欢的方式,当你提交了4个文件到master之后,想要撤回来,这种方式会把提交的代码所有保留再本地,同时你执行git status,你会发现这些代码都变成了等待提交的状态,当你修改完之后,在经过git push origin master --force,切记必定要经过--force来强推,由于git reset 不会撤回线上的代码,只是撤回你本地仓库的代码,那么你要提交就会冲突,必须强推才能提交上去。
c. git reset --hard commit号;这种方式慎用,这种方式和--soft相似,可是惟一的区别就是执行之后,本地仓库代码都会自动删除,当你不想要此次提交的代码的时候能够采用这种方式,最后也是经过git push origin master --force来强推。
近期刚上线一门基于微信小程序、公众号和小程序云开发的微信受权、分享和支付的专项课程,若是你对支付感兴趣能够考虑入手:
https://coding.imooc.com/class/343.html
React全家桶开发通用的后台管理系统:
https://coding.imooc.com/class/236.html
Vue2.0+Vue-Router+Vuex+Node+Mongo开发全栈商城课程
https://coding.imooc.com/class/113.html
慕课讲师:河畔一角