1.1 实验内容

本次课程讲的是在实验楼的在线环境中,如何使用 Github 去管理在在线环境中使用的代码、配置、资源等实验相关文件,怎样去添加、同步和下拉在远程仓库中的实验文件,以此来维持自身的实验进度。

1.2 实验知识点

  • SSH 公私钥的基本使用
  • Github 的基本使用
  • Git 工具的基本使用

1.3 实验环境

  • git: Git 管理工具
  • ssh-keygen:SSH 公私钥管理工具
  • xfce终端

1.4 适合人群

本课程难度为简单,属于基础级别课程,适合具有 Bash 命令行基础的用户。

1.1 实验内容

本次课程讲的是在实验楼的在线环境中,如何使用 Github 去管理在在线环境中使用的代码、配置、资源等实验相关文件,怎样去添加、同步和下拉在远程仓库中的实验文件,以此来维持自身的实验进度。

1.2 实验知识点

  • SSH 公私钥的基本使用
  • Github 的基本使用
  • Git 工具的基本使用

1.3 实验环境

  • git: Git 管理工具
  • ssh-keygen:SSH 公私钥管理工具
  • xfce终端

1.4 适合人群

本课程难度为简单,属于基础级别课程,适合具有 Bash 命令行基础的用户。

2.1 Github 的使用

讲解如何创建 Github 账户和如何创建远程仓库

2.1.1 创建账号

到 Github 注册 页面中注册,填写用户名、邮箱和密码 

选择免费服务 

步骤三可以根据自身喜好勾选或者直接跳过 

2.1.2 创建远程仓库

创建完账号后,可以开始创建仓库 

但是这里我们还没有验证邮箱,所以点击开始一个项目会跳出一个页面让我们验证邮箱 

到邮箱中点击验证链接 

验证完毕后会跳到之前的 Guide 页面,而且顶部会有一个邮箱验证完毕的提示 

再次点击开始一个项目,成功进入创建项目页面,填写项目名称和描述,勾选 Public(Private是收费选项) 选项和自动初始化 README.md 勾选框 

点击创建,至此 Github 账号的创建和远程仓库创建完毕 

2.2 SSH 公私钥的使用

讲解如何使用 ssh-keygen 生成公私钥

2.2.1 创建密钥

首先在终端敲入,如果一路一直按回车下去,会把密钥文件放置在默认路径,也就是 ~/.ssh/ 路径下,并且会创建一套空密码验证的密钥文件,反之则每一次匹对公私钥都需要再手动输入一次密码,所以这里为了方便使用,建议一路回车下去就行

$ ssh-keygen

输入密钥文件保存路径,建议默认路径,按回车跳过 

要求输入密码,建议回车使用空密码方便以后的每次连接 

到选择存放密钥文件的路径下查看,我这里使用的使默认路径,所以使 ~/.ssh/ 路径下,可以看到生成了两个密钥文件,后缀为 .pub 的就是公钥文件,另一个没有后缀的就是私钥文件,可以看到密钥文件创建完毕 

2.2.2 关联公钥到 Github 账号下

首先复制公钥文件中的内容,也就是 ssh-rsa 开头到 用户名@主机名 这段字符串 

然后回到 Github, 点击右上角头像的下拉按钮,选择 Settings 

然后在 Settings 页面中选择左边菜单里的 SSH and GPG keys,然后点击右上角的 New SSH key 按钮,填写 Title 和 Key,然后点击 Add SSH key 按钮提交 

通过返回的页面可以看到公钥与 Github 已经关联完毕

2.3 安装配置 Git 工具

介绍如何安装与简单的配置 Git 工具

2.3.1 安装

首先在终端下面敲入 git --version, 如果正确回显版本号,则说明已经安装好,如果没有则在终端敲入下面这条命令进行安装

$ sudo apt-get install git -y
2.3.2 配置用户名与邮箱

配置用户名

### 如果想设置为全局生效,添加 --global 参数
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱" 接下来,我们将在具体场景使用 github。

3.1.1 克隆仓库到本地的个人PC

首先到远程仓库中,点击 Clone or download 按钮,选择使用 Use SSH,然后点击复制链接按钮 

因为之前已经关联过个人PC的 SSH 公钥,所以直接在命令行中使用以下命令就可以克隆仓库到本地

#命令用法:git clone "你复制的仓库链接"
$ git clone git@github.com:shiyanlou-001/shiyoulou-001.git

查看仓库内容,确定已经克隆到本地 

3.1.2 克隆仓库到实验楼的在线环境

打开 Xfce 终端,输入以下命令克隆仓库到在线环境中,这里要注意下,因为在线环境环境的 SSH 公钥是没有关联 Github 账户的,所以这里克隆仓库到本地是需要对应上 Github 的用户名与密码的,具体操作如下

在实验环境中打开浏览器,输入远程仓库地址,Github 的URL地址构造是 https://github.com/用户名/仓库名称,而我的用户名和仓库名称都是 shiyanlou-001 所以这里我自己的项目地址为 https://github.com/shiyanlou-001/shiyanlou-001

进入仓库页面后,依旧是点击 Clone or download 按钮,由于我们没有登录 Github 所以这里能复制URL的只有 Use HTTPS 选项,与 Use ssh 选项的区别是每一次同步改动都需要手动输入 Github 的用户名和密码,加上因为是在线环境环境,为了安全性这里也应该就只用 HTTPS 来克隆仓库到本地 

接下来打开终端,依旧用 git clone 命令克隆仓库到在线环境中,比如我的仓库地址是 https://github.com/shiyanlou-001/shiyanlou-001.git,那么命令就应该是下面这样子

#注意地址用的是你自己的仓库地址
$ git clone https://github.com/shiyanlou-001/shiyanlou-001.git

查看仓库内容,确定已经克隆到在线环境之中 

3.2.1 添加/修改

要把一个文件添加或者更新内容到本地索引中,可以使用 git add 命令,命令的用法是 git add <文件名|路径名>,具体步骤如下

创建一个新的 txt 文件,文件的内容就写“这是一个新的文件” 

将这个文件移动到仓库下,并用 git add 命令添加到本地索引库中 

3.2.2 删除

要把仓库里的文件删除掉,可以使用 git rm 命令,用法是 git rm [-rf] <文件名|路径>,具体步骤如下

这里我们可以用一开始就存在的 README.md 文件来做实验,我们敲入 git rm README.md,然后可以发现文件已经删除了 

3.2.3 撤销

要把仓库里的改动撤销回克隆下来的状态(注意,如果改动之后执行了提交就无法再撤销,只能从远程仓库重新克隆一份到本地),可以使用 git reset 命令,具体步骤如下

比如我们要把刚才删除的 README.md 文件给还原回来,就可以在仓库目录下,敲入 git reset --hard HEAD 来回退 

cat 一下,可以发现文件已经恢复了 

在仓库的每一次改动操作之后,推送同步到远程仓库之前,都需要对这一次或这一批次的操作做提交,命令为 git commit,用法是 git commit -m "你的提交备注",只有做好提交动作,才可以开始推送改动到远程仓库同步

因为我之前已经撤销了仓库的改动,这里就重新创建一个新的文件,内容就写“测试”两个字,然后提交改动 

为了方便我们离开在线环境之后在个人机器上做实验,我们可以在最开始的个人机器的本地仓库中同步远程仓库的更新下来

3.6.1 查看仓库改动

首先我们可以通过 git fetch 命令查看有哪一些新改动,用法是在仓库目录下敲入 git fetch origin 

3.6.2 下拉仓库同步

确认好更新的内容后,下一步就是把更新给同步到本地仓库中了,通过 git pull 命令来实现,具体用法是 git pull origin <分支名>,分支名默认是 master,再查看一下目录,可以看到已经同步好了

通过 Github 这样的管理方式,我们就可以保存每一次实验的文件,以此来维持实验进度,下一次打开在线环境,只需要把自己对应的远程仓库克隆到本地,就可以做到接着上一次实验进度展开学习了

简单步骤:
(生成公钥)ssh-keygen--->(查看公钥)cat id_rsa.pub--->(Github)settings--->(Github)SSH and GPG keys
--->(安装Git)sudo apt-get install git -y--->(配置用户名邮箱)git config --global user.name(email) "xxx"
--->(克隆仓库链接)git clone "仓库链接"--->克隆到自己在线环境中
git 增删改查
git add <文件名> 添加
git rm <文件名> 删除
git reset(git reset --hard HEAD) 撤销
仓库每一次改动 都需要git commit提交 git commit -m "提交备注"
提交后就要开始远程推送了 git push -u origin master(分支名)

来源于:https://www.shiyanlou.com/courses/running 大家可以去看看

从Linux上传到Git过程的更多相关文章

  1. 使用Eclipse上传/下载Git项目

    使用Eclipse上传/下载Git项目 前提: Eclipse已安装EGit插件 已拥有GitLab / GitHub / 其它Git托管服务账号 SSH方式 配置 配置Git信息 配置用户信息 Ec ...

  2. JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)

    JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!) 1.文件准备: 服务器:CentOS Linux release 7.3.1611 (Core)     Apa ...

  3. 如何将本地的项目上传到git

    如何将本地的项目上传到git 1 进入项目文件夹,把目录变为git仓库 git init 2 把文件添加到版本库中 git add . 3 把版本提交到版本库 git commit -m 'first ...

  4. 一个项目中哪些文件是要上传到 git上的,哪些是不必要的

  5. 如何用命令将本地项目上传到git

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  6. 本地代码上传到git

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  7. 如何用命令将本地项目上传到git[z]

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  8. 将本地项目上传到git

    1.新建一个README.md的文件,并将项目名写入此文件(一般第三方git服务会在创建在创建项目的时候自动创建该文件,可以跳过这一步) echo "# Lee" >> ...

  9. C#中富文本编辑器Simditor带图片上传的全部过程(MVC架构的项目)

    描述:最近c#项目中使用富文本编辑器Simditor,记录一下以便以后查看. 注:此项目是MVC架构的. 1.引用文件 项目中引用相应的css和js文件,注意顺序不能打乱,否则富文本编辑器不会正常显示 ...

随机推荐

  1. 20行以内python代码画出各种减压图

    一.太阳花 看到一个很有意思的代码,你若安好,便是晴天!太阳花向你开~ 绘画效果如下: 代码如下: from turtle import * color('red', 'yellow') begin_ ...

  2. hadoop分布式搭建

    1.新建三台机器,分别为: hadoop分布式搭建至少需要三台机器: master extension1 extension2 本文利用在VMware Workstation下安装Linux cent ...

  3. Python内置函数(43)——min

    英文文档: min(iterable, *[, key, default]) min(arg1, arg2, *args[, key]) Return the smallest item in an ...

  4. 并发编程(六)——AbstractQueuedSynchronizer 之 Condition 源码分析

    我们接着上一篇文章继续,本文讲讲解ReentrantLock 公平锁和非公平锁的区别,深入分析 AbstractQueuedSynchronizer 中的 ConditionObject 公平锁和非公 ...

  5. JAVA实现接口监控报警系统

    公司一内部系统需要添加一个接口和定时任务监控机制,针对了系统出现的定时任务没有执行,定时任务执行异常出错,对外传送的数据接口异常出错,对内的系统数据互传异常出错等问题进行设计,目的是为了能够让用户没发 ...

  6. 【Python3爬虫】猫眼电影爬虫(破解字符集反爬)

    一.页面分析 首先打开猫眼电影,然后点击一个正在热播的电影(比如:毒液).打开开发者工具,点击左上角的箭头,然后用鼠标点击网页上的票价,可以看到源码中显示的不是数字,而是某些根本看不懂的字符,这是因为 ...

  7. HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码

    HttpServletResponse  和 ServletResponse  都是接口 具体的类型对象是由Servlet容器传递过来   ServletResponse对象的功能分为以下四种:   ...

  8. Redis Codis 部署安装

    背景 关于Redis的高可用除了只身的Sentinel和Cluster之外,还有一个用的比较多的是Codis,由于公司的Redis大部分都使用Codis,本文就针对Codis进行相关的安装部署进行说明 ...

  9. 【Zabbix】Zabbix Server自动发现

    Zabbix自动发现 由于有上百台的虚拟机需要监控,如果一个个去添加配置,费时费力.Zabbix的自动发现,可以自动发现需要监控的机器,监控相应指标. 前置条件 安装部署好Zabbix Server. ...

  10. Shell编程(week4_day3)--技术流ken

    本节内容 1. shell流程控制 2. for语句 3. while语句 4. break和continue语句 5. case语句 6. shell编程高级实战 shell流程控制 流程控制是改变 ...