实验目的

1. 了解分布式系统版本管理的核心机理。

2. 熟练掌握 git 的基本指令和分支管理指令。

实验内容

1. 安装 git。
2. 初始化配置 git,git init ,git status。
3. 掌握 git log,git diff,git add。
4. 掌握 git tag ,git branch,git commit。
5. 掌握 git revert指令。

实验记录

1. 安装 git

2. 初始配置 git ,git init git status 指令

2.1 在开始使用 Git 之前,需要配置 Git。配置结果如下:

2.2 在对 git 仓库进行 commit 或执行任何其他操作之前,需要一个实际存在的仓库。要使用 Git 新建一个仓库,将使用 git init 命令。结果如下:

2.3 git status 是了解 git 的核心所在。它将告诉我们 git 正在考虑什么,以及 Git 所看到的我们仓库的状态。当第一次使用 git 时,应该一直都要使用 git status 命令.应该习惯于运行任何其他命令之后,都运行下该命令。这样可以帮助了解 git 的工作原理,并避免你对文件 / 仓库状态做出不正确的推论。结果如下:

3. 掌握 git log,git diff,git add

3.1 使用git log 命令查看 commit 的信息。结果如下:

3.1.1 使用 git log --oneline 更改仓库信息的显示方式,如下:

3.1.2  使用 git log --stat  显示 commit 中更改的文件以及添加或删除的行数,如下:

3.1.3 git log  -p 命令具有一个可用来显示对文件作出实际更改的选项,如下:

3.1.4 使用 git show 命令将仅显示一个 commit。如下:

3.2 进入到 new-git-project ,创建 HTML 文件,首先,创建一个叫做 index.html 的文件,再建立  js 和 css 文件夹,并在文件下分别建立 app.js 和 app.css 文件,文件内容可为空。

3.2.1使用 git add 将 index.html 添加到暂存区,此时再次输入 git status 命令,查看当前状态。如下:

3.2.2 使用 git add 将 css 文件和 js 文件添加到暂存区,此时再次输入 git status 命令,如下:

3.2.3 要在 git 中提交 commit,需要使用 git commit 命令,如下:

3.3 使用 git diff 命令可以用来查看已被加入但是尚未提交的更改,将 html 文件中的标题从"Expedition"改为"Adventure"。如下:

4. 掌握 git tag ,git branch,git commit

4.1.1 使用 git tag -a v1.0,命令将打开代码编辑器,并等待你为标签输入信息。我们输入"Ready for content"作为tag,如下:

 

4.1.2 使用 git tag 命令行会显示仓库中的所有标签,如下:

4.2.1 使用命令创建分支,如下:

4.2.2  分支实战

  • 更改一:添加页面颜色,如下:

  • 更改二:添加侧栏,如下:

  • 更改三:更改 master 上的标题,如下:

  • 查看分支,如下:

4.3 使用 git merge 指令来合并 git 分支,如下:

4.3.1 在分支上更改标题1,如下:

4.3.2  在分支上更改标题2,如下:

4.3.3 合并冲突,如下:

4.3.4 git status 的输出结果告诉我们 index.html 中存在合并冲突。因此在代码编辑器中查看该文件!如下:

5. 掌握 git revert 指令

现在创建了一个包含一些更改的 commit,可以使用 git revert 命令还原它.因为最近的 commit 的 SHA 是 2c3a381,要还原该 commit:需要运行 git revert c362da5,如下:

实验过程中发生的问题与解决:

1. 问题:一开始不知道 git  gui、git cmd、git bash 的区别,做实验应该用哪一个。

解决:gui 是可视化图形界面,git 中的 bash 是基于cmd 的,在 cmd 的基础上增添一些新的命令与功能。所以在使用的时候,用 bash 更加方便。

补充:git 在安装的时候也安装了一个轻量级的 bash 环境,然后启动这个”git bash”,出来的命令窗口就带有这个 bash 环境的环境变量。bash 是基于 shell 的命令库,本身是 unix 下的命令脚本。你甚至可以在”git bash”中使用一个轻量的vi编辑器。 因此本质上来说:git bash 是一个封装过的cmd命令行,并在其中加入了指向 bash 环境的环境变量。因此 cmd 命令行本身的环境变量它也有,自然就能使用 dos 命令了。但是在封装的过程中,windows 可能对调用自己 cmd 命令行控件的第三方应用设了限制,所以说是大部分可以用。

2. 问题:在浏览 git log 的信息时使用下键浏览较慢。

解决:强调了“默认情况下”是因为 git log 命令显示的信息远不止这些。git 使用命令行分页器 less 浏览所有信息。b 键可以整个页面往下翻。

实验总结与体会

通过本次实验我不仅了解分布式系统版本管理的核心机理,还熟练掌握git的基本指令和分支管理指令。在实验过程中遇见了一些问题,通过查阅资料与请教老师同学得到解决,本次实验更是让我收获很多,耐心得到了很大的提高。

思考题

阅读维基百科和百度百科 的Git词条,总结分布式版本控制系统的核心机理。

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是  Linus Toorvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。在自己的机器上根据不同的开发目的,创建分支,修改代码。在单机上自己创建的分支上提交代码。在单机上合并分支。把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。生成补丁(patch),把补丁发送给主开发者。看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

实验一 git代码版本管理的更多相关文章

  1. 实验一 GIT 代码版本管理

    实验一  GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)   熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...

  2. 实验一  GIT 代码版本管理

    实验一  GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ini ...

  3. 软件工程实验一 Git代码版本管理

    实验一  GIT 代码版本管理 一.实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 二.实验内容: 1)安装git: 2)初始配置git ,gi ...

  4. 实验一Git代码版本管理

    GIT代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git init git ...

  5. 软工 实验一 Git代码版本管理

    实验目的: 1)了解分布式版本控制系统的核心机理: 2)   熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git init git status指令 3 ...

  6. 实验1 GIT代码版本管理

    (一)实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: (二)实验内容: 1)安装git 2)初始配置git ,git init git sta ...

  7. 实验一  GIT 代码版本管理

    实验一  GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)   熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...

  8. iOS - Git 代码版本管理

    1.Git Git 是用 C 语言开发的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状态可以是不同的文件,也可以是不同的文件内容. ...

  9. GIT代码版本管理

    一.实验目的 1.了解分布式版本控制系统的核心机理: 2.熟练掌握git的基本指令和分支管理指令: 二.实验内容 1.安装git: 2.初始配置git,git init git status指令: 3 ...

随机推荐

  1. Ubuntu 安装 uWSGI

    uWSGI官方网址: https://pypi.org/project/uWSGI/ 使用如下命令安装: pip install uWSGI 报如下错: Collecting uWSGI Using ...

  2. 「SDOI2009」虔诚的墓主人

    传送门 Luogu 解题思路 离散化没什么好说 有一种暴力的想法就是枚举每一个坟墓,用一些数据结构维护一下这个店向左,向右,向上,向下的常青树的个数,然后用组合数统计方案. 但是网格图边长就有 \(1 ...

  3. GIT 协同开发

    Git 是一个开源的分布式版本控制系统,用于敏捷高效的处理任何项目的版本问题.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.与cvs, ...

  4. mac下Red Hat 7.4服务器初始化

    物料:VMware Fusion for Mac版     rhel-server-7.4-x86_64-dvd.iso 通过VMware安装好虚拟机,打开终端: 1.通过ifconfig查看ip和网 ...

  5. Fast Queries

    传送门 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> ...

  6. 19 JavaScript数组 &数组增删&最值&排序&迭代

    关联数组(散列) 关联数组又叫做散列,即使用命名索引. JavaScript数组只支持数字索引. JavaScript对象使用命名索引,而数组使用数字索引,JavaScript数组是特殊类型的对象. ...

  7. JS清除空格之trim()方法

    JQ: $.trim() 函数用于去除字符串两端的空白字符. 注意:$.trim()函数会移除字符串开始和末尾处的所有换行符,空格(包括连续的空格)和制表符.如果这些空白字符在字符串中间时,它们将被保 ...

  8. Python 基础之面向对象之类中的方法和与类相关的魔术属性以及反射

    一.类中的方法 普通方法: 没有参数,只能类调用绑定方法: (1)绑定到对象(自动传递对象参数) (2)绑定到类(自动传递参数)静态方法: 无论是类还是对象,都能调用的方法#例:class Dog() ...

  9. broadcom sdk command

    1.查看端口link状态 BCM.0>ps 2.查看vlan BCM.0>vlan show 3.查看pvlan BCM.0>pvlan show 4.CPU发包 BCM.0> ...

  10. Java基础知识笔记第五章:子类与继承

    子类与父类 子类 class 子类名 extends 父类名{ ....... } 类的树形结构 子类的继承性 子类和父类在同一包中的继承性 子类继承了父类不是private的成员属性和成员方法   ...