Git分布式管理-头歌实验本地版本库

一、本地版本库创建

任务描述

本地Git操作三部曲是“修改-添加-提交”,即先要在本地仓库进行添加、删除或编辑等修改,然后将本地所做的修改添加至暂存区。添加至暂存区的这些本地修改,并未提交到本地仓库,需要执行提交命令才能将暂存区中的修改,添加到本地仓库。

使用Git最基本的是,要先创建一个本地版本库,然后才能在本地修改、保存及提交文件。现在,让我们从创建一个本地版本库开始!

本关任务:现在你要开始使用Git进行项目的版本控制了,请在本地创建一个版本库。

相关知识

Linux基础操作

在现今的软件开发中,Linux系统及其命令行的使用,已经是一项必不可少的技能。虽然有其他基于Git的图形化软件,但是Git只能通过命令行进行操作。因此,掌握一些基础的Linux操作命令很有必要。

创建某个目录

有时我们需要创建目录,这时就需要使用命令mkdir。通过mkdir,可以在指定的目录下创建文件夹,其用法如下:

  • 在当前目录下,创建目录helloGit:   mkdir helloGit
  • /home目录下,创建目录helloGit:   mkdir /home/helloGit

mkdir的其他高级用法请参考其他Linux资料。

创建文件

创建文件可以使用命令touch,其用法如下:

  • 在当前目录下,创建文件helloGit.txt:    touch helloGit.txt
  • /home目录下,创建文件helloGit.txt:    touch /home/helloGit.txt
进入目录

进入某个目录,需要用到命令cd,其用法如下:

  • 进入helloGit目录:    cd helloGit

这样的用法默认了helloGit目录,存在于当前目录下。也可以在cd命令中,直接指定进入当前目录:     cd ./helloGit

  • 进入/home/helloGit目录:    cd /home/helloGit

  • 返回到上一级目录: 在Linux系统下,上一级目录可以用‘..’代替,如:

    1. #进入上一级目录
    2. cd ..
    3. #进入上一级目录的再上一级目录
    4. cd ../../
    5. #进入上一级目录下的helloGit
    6. cd ../helloGit
使用Git前的准备
安装

Git可以使用源码安装,具体的安装过程请参考Git官网教程或者GithubGit仓库的用户指南。 但对于初学用户,还是建议大家直接安装。

  • Linux下安装:

    1. #Fedora下安装
    2. yum install git-core
    3. #Ubuntu等Debian类体系结构系统下
    4. apt-get install git
  • Mac上安装:    在 Mac 上安装 Git 有两种方式。可以使用图形化的 Git 安装工具,网址为图形化Git工具安装地址;另一种是通过MacPorts 安装。如果已经装好了 MacPorts,请用下面的命令安装 Gitsudo port install git-core +svn +doc +bash_completion +gitweb

  • Windows下安装:   在 Windows 上安装 Git,可以使用msysGit 的项目提供的安装包,可以到 GitHub 的页面上,下载 exe 安装文件并运行:   http://msysgit.github.com/ 完成安装之后,就可以使用命令行的 git 工具了。建议大家最好使用Unix风格的shell来运行Git。另外,Linux也有其他图形化的Git工具,如Tortoisegit。不过,还是建议大家直接使用shell来运行Git

Git配置

由于Git是一个分布式的版本控制系统,所以当利用它进行分工协作时,必须区分不同的机器。这一点可以通过配置机器的名字和邮箱完成。Git初始使用时,也会提示进行配置。配置命令如下:

  1. $ git config --global user.name "Your Name"
  2. $ git config --global user.email "email@example.com"

在实际的使用过程中,可以将“Your Name”“email@example”替换为自己实际的名字和邮箱。

如何创建一个本地版本库

首先,我们需要创建一个目录,做为我们的本地版本库,然后使用git init命令,将其初始化为一个本地版本库,如下:

  1. #在/home目录下,创建repo目录
  2. mkdir /home/repo
  3. #进入repo目录
  4. cd /home/repo
  5. #将repo初始化为一个本地版本库
  6. git init

通过上述命令,即可在/home目录下,创建repo目录,并将其初始化为一个版本库。

编程要求

现在我们已经学习了Git的原理(具体请阅读背景知识部分内容)、安装及配置,也学到了一些必备的Linux操作,我们已经为你在Linux系统下,安装好了Git,并进行了配置,这为你省去了不少麻烦。 本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,通过执行你所编写的脚本,来完成创建本地版本库的任务。具体要求如下:

  • 在当前目录下,创建一个名为gitTraining的目录;
  • gitTraining目录,初始化为一个本地版本库。
#创建gitTraining文件夹
mkdir gitTraining#进入gitTraining文件夹
cd gitTraining#请添加初始化本地Git仓库的命令
#********** Begin **********#
git init#********** End **********#

 二、添加修改到暂存区域

任务描述

现在我们已经有了一个本地仓库,但是现在它里面空空如也。那么我们到底要怎么去保存我们的修改呢? 本关任务:使用Git命令将本地文件添加到暂存区中。

相关知识
如何将修改保存到暂存区

本地版本库就相当于一个存放在本地的仓库,里面记录了我们本地文件的各种版本及不同版本之间的差异。当我们添加、删除或者修改了文件之后,我们必须将修改添加至工作区以暂时保存(Git的工作原理请认真阅读背景知识部分)。

添加修改,并保存至工作区,需要用到git add命令,git add命令的使用方式如下所示:

#添加所有修改
git add .
#添加hello.txt文件
git add hello.txt

如上所示,当需要添加所有文件至工作区时,使用git add .,如果想添加指定文件,只需要像示例中添加hello.txt一样,将文件名做为参数名,传给git add即可。

虽然本关考察了添加修改到暂存区的操作,但是如果想得心应手地使用Git还不够。这里,必须要向你介绍另外两个很重要的命令。

查看工作区状态

当你创建完helloGit.txt,而且没有将其添加到暂存区域时,如果使用git status命令,你会得到类似于下面的输出(中文):

或者这种(英文):

这是什么?这是提示你工作区有被修改的文件,未提交至暂存区。 当你执行完git add之后,会得到类似于下面的输出:

或者这种:

这是在提醒你,暂存区有哪些内容需要提交到本地仓库。

其实git status命令用来查看当前工作区的状态,即有哪些已经修改,还尚未提交到暂存区的文件。在实际的开发过程中,面对复杂的程序文件,你经常需要查看一下,自己对哪些文件做了修改,此时git status命令就很有用了。你可以在命令行界面下,自己去体验一下。

撤销修改

本关只考察了添加内容,但是如果你不小心把不想添加的东西添加到暂存区,或者想丢弃已经添加的内容,这个时候你该怎么办呢?不用着急,这个时候git checkout命令就可以大显身手了。

checkout命令用法如下:

git checkout helloGit.txt

这样就能把已经添加到本地的helloGit.txt从暂存区中移除。

#创建gitTraining文件夹
mkdir gitTraining#进入gitTraining文件夹
cd gitTraining#请添加初始化本地Git仓库的命令
#********** Begin ********init**#git init
#********** End **********##创建helloGit.txt文件
touch helloGit.txt#请添加提交helloGit.txt到暂存区的命令
#********** Begin **********#
git add helloGit.txt
git status
#********** End **********#

 三、提交修改到本地仓库

任务描述

本地Git操作三部曲,是“修改-添加-提交”。现在你已经完成了前两个,相信你也迫不及待地想进行第三个操作了:将本地修改提交到本地仓库中去。

本关任务:将暂存区中的修改提交到本地仓库中。

相关知识
如何将修改提交到本地仓库

将修改添加到暂存区,只是将你的工作暂时保存,并没有添加到本地的仓库中。这个过程可以类比写文件,将修改添加至暂存区,就相当于把内容先放入缓存区。因此,我们必须将工作区的内容提交到本地版本库去,才算是真正地保存了修改。

提交修改到本地仓库,使用命令git commit,其使用方式如下所示:

git commit -m "示例提交"

-m参数后面跟的是本次提交的具体内容,用来说明你这次的提交,主要是做了哪些修改,这个说明内容是必须的。

解析commit的输出结果

在执行完git commit命令之后,会得到类似于下面的返回结果:

其中:

  • “添加helloGit.txt”“-m”的参数,即执行的命令为git commit -m "添加helloGit.txt"
  • “1 file changed, 0 insertions(+), 0 deletions(-)” 提示改动信息;
  • “37302ce”这个字符串则是本次提交的Idcommit Id唯一对应一次提交。
令人惊喜的git log和git status

当执行完git commit后,如果你试着执行以下git log你可能会得到如下的输出:

其中:

  • “commit 37302ce99137cf30fabc14784d23ea63cadb928b”中的后面这一串字符就是完整的commit id
  • “Author”就是这次提交的作者,它就是我们在git config中配置的user.name
  • 最后输出的“添加helloGit.txt”,是我们在提交时添加的信息。

如果有多次提交即commit,在执行git log时,会输出每一次的提交的具体信息。这样的话,什么时候(Date)由什么人(Author)提交了什么内容(“添加helloGit.txt”)就一目了然了。

#创建gitTraining文件夹
mkdir gitTraining#进入gitTraining文件夹
cd gitTraining#请添加初始化本地Git仓库的命令
#********** Begin **********#
git init#********** End **********##创建helloGit.txt文件
touch helloGit.txt#请添加提交helloGit.txt文件到暂存区的命令
#********** Begin **********#
git add helloGit.txt
git status#********** End **********##请添加提交helloGit.txt至本地仓库的命令
#********** Begin **********#
git commit -m "Add helloGit.txt"
git log
#********** End **********#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/721442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAN通信篇 - CanTrcv模块配置(二)

文章目录 CanTrcvConfigSetCanTrcvChannelCanTrcvDioChannelAccess 总结 CanTrcv模块配置也比较简单,主要是配置CanTrcv的行为。有一些工程甚至没有包含CanTrcv配置模块(CanTrcv配置代码已通过手写代码方式嵌入工程)。下图所示为CanTrcv模块配置容器。 CanTrcvConfi…

实名制交友-智能匹配-仿二狗交友系统-TP6+uni-APP小程序H5公众号-源码交付-支持二开!

一、代码风格 通常不同的开发者具备不同的代码风格,但为了保证语音交友系统开发质量,在编码前需要进行代码风格的统一,通过制定一定的规则,约束开发者的行为。具有统一风格的代码才能更清晰、更完整、更容易理解、更方便后期维护…

09 Qt扩展LineEdit组件:Input输入框

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起:自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起:自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件:令人抓狂的QToolButton文本图标居中问题-CSDN博客 0…

Mysql80服务无法启动请输入Net helpMsg3534以获得更多的帮助

起因&情景: 朋友正在操作数据库,然后电脑突然死机,再重启电脑后启动数据库服务报: 然后朋友尝试各种操作都没有办法正常启动, 一、网上解决方案:(先别操作) 1 删掉&#xff1a…

爬取博客的图片并且将它存储到响应的目录

目录 前言 思想 注意 不多说解释了,贴代码吧 config.json Get_blog_img.py 把之前的写的代码也贴上 Get_blog_id.py 主函数 main.py 运行结果 前言 在上一篇博客中我们介绍了如何爬取博客链接 利用python爬取本站的所有博客链接-CSDN博客文章浏览阅读74…

MatteFormer:Transformer-based image matting via prior-tokens

【CVPR2022】MatteFormer: Transformer-Based Image Matting via Prior-Tokens-CSDN博客文章浏览阅读1.2k次。【CVPR2022】 MatteFormer: Transformer-Based Image Matting via Prior-Tokens_matteformerhttps://blog.csdn.net/Thinkobj/article/details/128209388本文核心2点&…

Vmware Fusion 13 安装CentOS、Ubuntu、Windows11虚拟机

Vmware Fusion 13 安装CentOS、Ubuntu、Windows11虚拟机 背景:每次安装都要到处找资源,现在一篇文章足以 文章目录 Vmware Fusion 13 安装CentOS、Ubuntu、Windows11虚拟机一、Mac中安装CentOS虚拟机1️⃣:准备镜像2️⃣:创建虚拟…

GitHub热榜第二的sora同款工具——DUSt3R

目录 Sora - 探索AI视频模型的无限可能 传送门: Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展,AI视频模型已成为科技领域的新热点。而在这个浪潮中,OpenAI推出的首个AI视频模型Sora,以其卓越的性能和前瞻性的技…

《低代码平台开发实践:基于React》读书心得与实战体验

低代码平台开发实践标题 🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 一、引…

现代信号处理学习笔记(三)信号检测

通过观测数据判断信号是否存在,这一问题称为信号检测。 目录 前言 一、统计假设检验 1、信号检测的基本概念 2、信号检测理论测度 比率测度 概率测度 3、决策理论空间 二、概率密度函数与误差函数 1、概率密度函数 2、误差函数与补余误差函数 三、检测概…

工业镜头的重要参数之视场、放大倍率、芯片尺寸--51camera

今天来简单介绍下工业镜头中常用的参数中的三个: 1、视场 视场(FOV)也称视野,是指能被视觉系统观察到的物方可视范围。 对于镜头而言,可观察到的视场跟镜头放大倍率及相机芯片选择有关。因此需要根据被观察物体的尺寸&#xff…

史上最全的大数据开发八股文【自己的吐血总结】

自我介绍 我本硕都是双非计算机专业,从研一下开始学习大数据开发的相关知识,从找实习到秋招,我投递过100公司,拿到过10的offer,包括滴滴、字节、蚂蚁、携程、蔚来、去哪儿等大厂(岗位都是大数据开发&#…

快速上手:在 Android 设备上运行 Pipy

Pipy 作为一个高性能、低资源消耗的可编程代理,通过支持多种计算架构和操作系统,Pipy 确保了它的通用性和灵活性,能够适应不同的部署环境,包括但不限于云环境、边缘计算以及物联网场景。它能够在 X86、ARM64、海光、龙芯、RISC-V …

根据用户名称实现单点登录

一、参数格式 二、后端实现 Controller层 public class IAccessTokenLoginController extends BaseController {Autowiredprivate ISysUserService sysUserService;Autowiredprivate ISingleTokenServiceImpl tokenService;/*** 登录方法** return 结果*/PostMapping("/l…

器件选型【二极管,电感篇】

二极管篇: 一句话总结:二极管选型时主要考虑二极管的最大反向电压,反向电流,最高工作频率(由结电容决定),反向恢复时间 二极管的主要作用是防反接,续流 二极管结电容: 在高频电路中&#xff…

JeecgBoot Vue3前端项目性能优化按需加载方案

JeecgBoot vue3前端项目在 3.5.5 版本之前,的确存在很严重的性能问题,大家可以参考以下文档进行升级。 按需加载改造方法 1、全局注册地方去掉2、组件改成异步注册3、用不到的大组件可以删掉 【精简项目方案】 大组件 1、富文本 tinyme2、Markdown3、…

NVIDIA GTC 2024将回归线下

NVIDIA 宣布将于 3 月 18 日至 21 日在圣何塞会议中心举办 GTC 2024 大会。预计将有超 30 万人亲临现场或线上注册参会。NVIDIA 创始人兼首席执行官黄仁勋将于太平洋时间 3 月 18 日(星期一)下午 1 点,即北京时间 3 月 19 日(星期…

前端- 基础 表单标签 - 使用场景及组成

大家都有到银行去办理业务的时候,大多数情况下会填一些 纸质的表之类的东西如下图 而我们在网页中也会经常遇到 像现实生活中在银行填表那样的情景,如下图 : 上示就是 网页中的表单的使用场景了 表单标签 : 为什么需要表单 …

290. Word Pattern一个击败了100C++用户的代码

题目描述 Given a pattern and a string s, find if s follows the same pattern. Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in s. Example 1: Input: pattern “abba”, s “dog c…

吴恩达机器学习笔记:第5周-9 神经网络的学习1(Neural Networks: Learning)

目录 9.1 代价函数9.2 反向传播算法9.3 反向传播算法的直观理解 9.1 代价函数 首先引入一些便于稍后讨论的新标记方法: 假设神经网络的训练样本有𝑚个,每个包含一组输入𝑥和一组输出信号𝑦,𝐿…