实验一 git代码版本管理
实验目的
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代码版本管理的更多相关文章
- 实验一 GIT 代码版本管理
实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...
- 实验一 GIT 代码版本管理
实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ini ...
- 软件工程实验一 Git代码版本管理
实验一 GIT 代码版本管理 一.实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 二.实验内容: 1)安装git: 2)初始配置git ,gi ...
- 实验一Git代码版本管理
GIT代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git init git ...
- 软工 实验一 Git代码版本管理
实验目的: 1)了解分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git init git status指令 3 ...
- 实验1 GIT代码版本管理
(一)实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: (二)实验内容: 1)安装git 2)初始配置git ,git init git sta ...
- 实验一  GIT 代码版本管理
实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...
- iOS - Git 代码版本管理
1.Git Git 是用 C 语言开发的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状态可以是不同的文件,也可以是不同的文件内容. ...
- GIT代码版本管理
一.实验目的 1.了解分布式版本控制系统的核心机理: 2.熟练掌握git的基本指令和分支管理指令: 二.实验内容 1.安装git: 2.初始配置git,git init git status指令: 3 ...
随机推荐
- Vue.nextTick DOM 更新循环结束之后执行延迟回调
在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 简单来说,Vue 在修改数据后,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统 ...
- 「CF1042F」Leaf Sets
传送门 Luogu 解题思路 比较显然的一种做法: 我们把一个点的子树高度抠出来并排序记为 \(L_i\),找到最大的 \(i\) 使得 \(L_{i-1}+L_i\le K\). 于是我们把前 \( ...
- 深入剖析Windows专业版安装Docker引擎和Windows家庭版Docker引擎安装的区别
原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 公司使用的电脑是Windows专业版,所以配置本机的Docker时会方便许多,后续由于需 ...
- 使用SQL计算宝宝每次吃奶的时间间隔(数据保障篇)
目前程序从功能上其实已经完全满足客户(当然我这里的客户都是指媳妇儿^_^)需求,具体可参考: 使用SQL计算宝宝每次吃奶的时间间隔 使用SQL计算宝宝每次吃奶的时间间隔(续) 那么本篇 使用SQL计算 ...
- python网络爬虫之解析网页的XPath(爬取Path职位信息)[三]
目录 前言 XPath的使用方法 XPath爬取数据 后言 @(目录) 前言 本章同样是解析网页,不过使用的解析技术为XPath. 相对于之前的BeautifulSoup,我感觉还行,也是一个比较常用 ...
- JavaSE复习~基本数据类型
数据类型 java有两大类数据类型:基本数据类型 和 引用数据类型 基本数据类型 整数型:byte.short.int.long 浮点型:float.double 字符型:char 布尔型:boole ...
- 【代码学习】PYTHON 文件I/O
一.文件的打开和关闭 open(文件名,访问模式) cloese() 模式 描述 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针 ...
- 【代码总结】数据库抽象层PDO
一.概述 PDO就是一个"数据库访问抽象层",起作用是统一各种数据库的访问接口,能够轻松的在不同数据库之间进行切换. 二.PDO的安装 编辑php.ini文件 添加 extensi ...
- 【渗透测试】Squirrelmail远程代码执行漏洞+修复方案
最近网上有点不太平,爆出各种漏洞,等下会把近期的漏洞复现一下,发出来.安全圈的前辈总是默默的奉献,在这里晚辈们只能站在巨人的肩膀上,跟紧前辈们的步伐,走下去. -------------------- ...
- XCOJ1250: 语言战争
1250: 语言战争 时间限制: 1 Sec 内存限制: 64 MB提交: 203 解决: 46 标签提交统计讨论版 题目描述 llc和yrc语言的优劣一直都是大家所争论的焦点,但它们之间最大的区 ...