1.SSH(Secure Shell)是一种安全协议,在你的电脑与GitLab服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。

2.创建 SSH密钥,并将密钥中的公钥添加到GitLab,以便我们通过SSH协议来访问Git仓库。

SSH 密钥的创建需要在终端(命令行)环境下进行,我们首先进入命令行环境。通常在OS X和Linux平台下我们使用终端工具(Terminal),在Windows平台中,可以使用Git Bash工具,git客户端安装目录下git-bash.exe文件

  A:进入SSH目录:cd ~/.ssh

  (1)如果还没有 ~/.ssh 目录,可以手工创建一个(mkdir ~/.ssh),之后再通过cd ~/.ssh进入SSH目录

  (2)可以通过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;如果SSH目录为空,我们开始第二步B,生成 SSH 密钥;如果存在id_rsa.pub这个文件,说明你之前生成过SSH密钥,如何添加多个sshkey也不难,一般很少用,这里不介绍了

  B:生成SSH密钥

  我们通过下面的命令生成密钥,请将命令中的YOUR_EMAIL@YOUREMAIL.COM替换为你注册gitlab时用的Email地址

  ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"

  在SSH生成过程中会出现以下信息,按屏幕的提示操作即可:

  

Note:Enter passphrase (empty for no passphrase) :时,可以直接按两次回车键输入一个空的 passphrase;也可以选择输入一个 passphrase 口令,如果此时你输入了一个passphrase,请牢记,之后每次提交时都需要输入这个口令来确认。

实践过程中建议不要密码。

3.获取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文件里的内容复制到剪切板中

4.添加SSH公钥到gitlab:

  1.打开gitlab的Profile配置页面,选择SSH Keys.

   2.添加SSH公钥。填写Title和Key,其中Title是Key的描述信息,Key是上面复制的SSH公钥的内容,直接粘贴到输入框中保存即可。

5.导入项目:

1.设置下git的用户名和邮箱

在提交代码前,还需要设置下git的用户名和邮箱(最好用英文,不要出现中文),这样提交记录才会在gitlab上显示带有你名字的记录。

在命令行窗口输入(windows需要安装打开Git Bash工具才行):
git config --global user.name "your_name"
git config --global user.email "your_email"

2.导新项目到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

3.导入项目到本地

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

慕课讲师:河畔一角

讲师地址:http://www.imooc.com/u/1343480

Mac 绑定Gitlab或者GitHub帐号,从新生成公钥的更多相关文章

  1. 多个github帐号的SSH key切换

    写在前面的话 github账号,工作有一个,自己有一个.但是默认下使用ssh key在git push时只有默认账号能免输入账号和密码. 如果想让另一个账号在代码push时免账号和密码,请看这篇文章h ...

  2. 为github帐号添加SSH keys

    为github帐号添加SSH keys 2012-05-26 00:05 34279人阅读 评论(6) 收藏 举报 ssh文本编辑gitvim工具up 使用git clone命令从github上同步g ...

  3. 为github帐号添加SSH keys(Linux和Windows)

    文章转自:https://blog.cofface.com/archives/406.html/2 一.Linux增加ssh keys方法: 使用git clone命令从github上同步github ...

  4. 多github帐号的SSH key切换

    我有两个github帐号,一个是个人所用,一个是为公司项目所用.如果是单用户(single-user),很方便,默认拿id_rsa与你的github服务器的公钥对比:如果是多用户(multi-user ...

  5. GitHUB帐号申请及相关操作

    GitHUB帐号申请及相关操作 GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub.GitHub 于 2008 年 4 月 10 ...

  6. 添加SSH keys到github帐号

    使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的esesgrid项目:git@github.com:hmilycc/esesgrid.git),而 ...

  7. windows同一台电脑设置多个公钥与不同github帐号交互

    1 生成公钥 1. 安装git,从C:\Documents and Settings\Administrator\.ssh\目录打开 "Git Bash":2. 键入命令:ssh- ...

  8. 设置 github 帐号user.name和邮箱user.email

    git config --global user.name username git config --global user.email username@email.com

  9. (转)在GitHub多个帐号上添加SSH公钥

    GitHub后台可以添加多个SSH Keys,但是同一个SSH Keys只能在添加在一个帐号上(添加时提示“Key is already in use”).理由很容易想到,SSH公钥使用时相当于用户名 ...

随机推荐

  1. swiper.js 多图片页面的懒加载lazyLoading

    swiper.js官网:http://www.swiper.com.cn/api/Images/2015/0308/213.html 设为true开启图片延迟加载,使preloadImages无效.需 ...

  2. 【洛谷】【动态规划+单调队列】P1714 切蛋糕

    [题目描述:] 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但 ...

  3. UI之富文本编辑器-UEditor

    在做Web应用时,经常会进行富文本编辑,常用的富文本编辑器有很多,比如CuteEditor.CKEditor.NicEditor.KindEditor.UEditor等等. 在这里为大家推荐百度推出的 ...

  4. windows下vi/vim编辑器的基本操作

    windows下vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准 ...

  5. Ant在MyEclipse中的配置总结

    1.在配置Ant之前,先要配置好JDK的JAVA_HOME和path:之后下载解压apache-ant-1.7.1;并配置环境变量ANT_HOME(安装目录,后不可以加分号:)及其path(安装目录/ ...

  6. leetcode88—Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...

  7. Git同时使用不同平台代码仓库

    问题描述 公司项目使用代码仓库为gitinn/gitlab等,个人项目使用github进行托管,而公司项目和个人项目设置的邮箱和用户名是不同的,而ssh的密钥对又是基于这两个信息生成的,所以此时想要同 ...

  8. Vue 下拉列表 组件模板

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 【转】常见的Web实时消息交互方式和SignalR

    https://www.cnblogs.com/Wddpct/p/5650015.html 前言 1. Web消息交互技术1.1 常见技术1.2 WebSocket介绍1.3 WebSocket示例 ...

  10. PRML5-神经网络(2)

    本节来自<pattern recognition and machine learning>第5章. 接(PRML5-神经网络(1)) 5.5NN中的正则化 NN的输入层和输出层的单元个数 ...