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. SQL基本注入演示

    作者:ZERO 所属团队:Arctic Shell 参考文献:<sql注入攻击与防御> 使用平台:pikachu漏洞练习平台 导语:  在owasp发布的top10排行榜中注入漏洞一直是危 ...

  2. [Swift]LeetCode101. 对称二叉树 | Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  3. [Swift]LeetCode112. 路径总和 | Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  4. 《关于长沙.NET技术社区未来发展规划》问卷调查结果公布

    那些开发者们对于社区的美好期待 2月,长沙.net 技术社区自从把群拉起来开始,做了一次比较正式.题目为<关于长沙.NET技术社区未来发展规划>的问卷调查,在问卷调查中,溪源写道: 随着互 ...

  5. 想成为Python全栈开发工程师必须掌握的技能

    什么是Python全栈工程师? 即从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的所有事情,真正实现全栈开发. 全栈只是个概念 也分很多种类 真正的全栈工程师涵盖了we ...

  6. Javascript sort方法

    sort()方法用于对数组的元素进行排序 语法:array.Object.sort(sortBy) sortBy:可选.规定排序顺序.必须是函数 返回值:对数组的引用.数组在原数组上进行排序,不生成副 ...

  7. 学生选课系统 c语言

    /********************************* *主题:学生选修课程系统设计 * *设计要求: *1.添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所需要添加 ...

  8. 『宝藏 状态压缩DP NOIP2017』

    宝藏(NOIP2017) Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的m 条道路和它们的长度. 小明决 ...

  9. RabbitMQ学习笔记(一) Hello World

    RabbitMQ是做什么的? RabbitMQ可以类比现实生活中的邮政服务. 现实中邮件服务处理的是邮件,发件人写好信件投入邮箱,邮递员收取信件存入邮局,邮局根据信件地址,分配邮递员投递信件到指定地点 ...

  10. 在Mac上使用vs-code快速上手c语言学习(入门文,老鸟退散)

    天下事,合久必分.分久必合,你肯定想不到当你逃离到Mac平台这么多年之后,有一天你会再用微软的产品来写代码 :) 其实微软的产品虽然用户体验总是做不到最好,但整体上的确拉低了行业的进入门槛,对于编程也 ...