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

news2024/9/23 17:14:29

一、本地版本库创建

任务描述

本地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.coloradmin.cn/o/1490306.html

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

相关文章

详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法

集合的概念 当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器来存储,数组就是这样一个容器。 ● 数组的特点: 数组是一组数据类型相同的元素集合; 创建数组时,必须给定…

【CSP试题回顾】202212-1-现值计算

CSP-202212-1-现值计算 解题代码 #include <iostream> #include <vector> #include <cmath> using namespace std;int main() {int n;double k, sumPrice 0;cin >> n >> k;vector<double>priceList(n 1);for (int i 0; i < n; i){…

分享7款前端动画特效(附效果图及在线演示)

分享7款好玩的前端动画特效 其中有CSS动画、SVG动画、js小游戏等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 canvas彩色画树特效 基于canvas实现的画树特效 同时还可选择树枝的初始数目进行彩色树生成 以下效果…

用docker部署后端项目

一、搭建局域网 1.1、介绍前后端项目搭建 需要4台服务器&#xff0c;在同一个局域网中 1.2、操作 # 搭建net-ry局域网&#xff0c;用于部署若依项目 net-ry&#xff1a;名字 docker network create net-ry --subnet172.68.0.0/16 --gateway172.68.0.1#查看 docker network ls…

【力扣精选算法100道】——存在重复元素 1 or 2 (哈希)

目录 &#x1f6a9;存在重复元素1 &#x1f388;了解题意 &#x1f388;算法原理 &#x1f388;实现代码 &#x1f6a9;存在重复元素2 &#x1f388;了解题意 &#x1f388;算法原理 &#x1f388;代码实现 217. 存在重复元素 - 力扣&#xff08;LeetCode&#xff09; …

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二)

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;前导&#xff09; Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;一&#xff09; 五、实验目的 本次实验使用电脑上的网络调试助手&#xff0c;将命令帧通过以太网芯片RTL8211&#xff08;RGMII接口…

C#,最小代价多边形三角剖分MCPT(Minimum Cost Polygon Triangulation)算法与源代码

1 最小代价多边形三角剖分算法 凸多边形的三角剖分是通过在非相邻顶点&#xff08;角点&#xff09;之间绘制对角线来形成的&#xff0c;这样对角线就不会相交。问题是如何以最小的代价找到三角剖分的代价。三角剖分的代价是其组成三角形的权重之和。每个三角形的重量是其周长…

FPFH特征提取以及匹配(matlab代码免费)

FPFH特征提取时谁提出的&#xff0c;尊重一下原创&#xff1a; [1] Rusu, Radu Bogdan, Nico Blodow, and Michael Beetz. “Fast point feature histograms (FPFH) for 3D registration.” In 2009 IEEE International Conference on Robotics and Automation, pp. 3212-3217…

websocket在java中的使用教程

本文从websocket服务端和客户端两个方面简单介绍下websocket在java中的使用。 一、websocket服务端&#xff08;WebSocketServer&#xff09; websocket服务端是以本机作为消息的接受端&#xff0c;用于接受客户端websocket发送过来的消息&#xff0c;并可以通过客户端的webs…

06_netdev网卡设备内核模块

01_basicLinux内核模块-CSDN博客文章浏览阅读315次&#xff0c;点赞3次&#xff0c;收藏3次。环境IDubuntuMakefilemodules:clean:basic.creturn 0;运行效果。https://blog.csdn.net/m0_37132481/article/details/136157384my_netdev.c #include <linux/kernel.h> #incl…

Unity 使用AddListener监听事件与取消监听

在Unity中&#xff0c;有时候我们会动态监听组件中的某个事件。当我们使用代码动态加载多次&#xff0c;每次动态加载后我们会发现原来的和新的事件都会监听&#xff0c;如若我们只想取代原来的监听事件&#xff0c;那么就需要取消监听再添加监听了。 如实现如下需求&#xff…

yml代替properties文件进行springboot项目配置

任务&#xff1a;使用yml格式文件代替properties格式文件进行便捷有效的springboot项目配置。 原先&#xff1a; 在与application.properties文件同级目录下新建application.yml文件&#xff0c;以上配置内容修改为&#xff1a; 注&#xff1a;yml文件的一些编写规范

前端爬虫+可视化Demo

爬虫简介 可以把互联网比做成一张 “大网”&#xff0c;爬虫就是在这张大网上不断爬取信息的程序。 爬虫是请求网站并提取数据的自动化程序。 省流&#xff1a;Demo实现前置知识&#xff1a; JS 基础Node 基础 &#xff08;1&#xff09;爬虫基本工作流程&#xff1a; 向…

跨境电商必看:跨境出海实用工具!

对于想要出海扩展业务的电商从业者来说&#xff0c;用好工具和资源至关重要。本文将分享一些跨境出海的使用工具&#xff0c;助力跨境业务。 关键词工具 Google Trends&#xff08;谷歌趋势&#xff09;&#xff1a; 它的数据来源于谷歌搜索&#xff0c;依靠Google全世界数十…

R语言简介、环境与基础语法及注释

R语言简介、环境与基础语法及注释 一、R语言1.R语言简介2.R语言官网3.R语言中国的镜像网站4.R语言下载5.R语言的历史 二、R语言环境1.Windows安装1.1 去 R 语言下载的镜像站点的列表下载1.2 选择版本进行下载1.3 点击运行1.4 一路默认&#xff0c;安装完毕&#xff01; 2.Linux…

maven配置文件(一)Settings配置

一、仓库 1、关系 我们依赖的外部服务是需要有地方进行存储的&#xff0c;而存储的地方就称之为仓库。其中仓库又分为本地仓库、中央仓库、镜像仓库、私服。 &#xff08;1&#xff09;本地仓库 当项目在本地编译或运行时&#xff0c;直接加载本地的依赖服务无疑是最快的。默…

[计算机网络]:流量控制

一、流量控制简介 一条TCP连接的每一侧主机都为其设置了接收缓存&#xff0c;当TCP成功连接后&#xff0c;它发送的数据会放入接受缓存中。相关联的进程会从缓存中读取数据。但是存在一个问题&#xff0c;当某应用程序读取数据速率太慢&#xff0c;而发送数据一方不停的发送数…

Flutter学习8 - 网络编程 Http

1、配置 Http 依赖 Flutter 工具库搜索地址&#xff1a;https://pub.dev/ http最新版本查看网址&#xff1a; https://pub.dev/packages/http 在 pubspec.yaml 中引入 http 插件 dependencies:flutter:sdk: flutterhttp: ^0.13.4 # 请检查并使用最新版本命令行中输入 “ flut…

【C语言基础】:深入理解指针(二)

文章目录 深入理解指针一、指针运算1. 指针 - 整数2. 指针 - 指针3. 指针的关系运算 二、野指针1. 野指针成因2. 如何避免野指针 三、assert断言四、指针的使用和传址调用4.1 strlen的模拟实现4.2 传值调用和传址调用 五、指针与数组5.1 数组名的理解5.2 指针访问数组5.3 一维数…

蓝桥杯-单片机组基础7-存储器映射扩展与PWM脉冲调制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…