实验一 Git代码版本管理

实验目的:

1)了解分布式分布式版本控制系统的核心机理;

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

实验内容:

1)安装git

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

3)掌握git log ,git add ,git diff 指令

4) 掌握git tag git branch,git commit 指令

5)掌握git revert 指令

实验内容:

安装Git:在群里下载老师所发的Git软件。

配置Git:

在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。

# 设置你的 Git 用户名

git config --global user.name "<Your-Full-Name>"

# 设置你的 Git 邮箱

git config --global user.email "<your-email-address>"

# 确保 Git 输出内容带有颜色标记

git config --global color.ui auto

# 对比显示原始状态

git config --global merge.conflictstyle diff3

git config --list

配置过程如下:

 

Git与代码编译器:

此次实验选择的编译器为Sublime text

 

 从头创建仓库:

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

 创建一个目录,叫做 se2020-git-course,在该目录中,创建另一个目录,叫做 new-git-project,使用 cd 命令移到 new-git-project 目录下。

 

 git init

 

 克隆现有仓库

 

 判断仓库的状态

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

 

 

 

 git log:在终端运行 git log 命令:

 

 git log 命令会显示仓库中每个commit的:

SHA

作者

日期

消息内容

git 使用命令行分页器 less 浏览所有信息。以下是 less 的重要快捷键:

 

 git log --oneline:

 

 

git clone --oneline 命令:

每行显示一个 commit

显示 commit 的 SHA 的前 7 个字符

显示 commit 的消息

相较于git log 而言 git log --online命令更简便 十分便于观察,但相对的,看不到日期,作者。

git log --stat :

The git log 命令有一个选项可以用来显示 commit 中更改的文件以及添加或删除的行数。该选项为 --stat

运行 git log --stat

 

 git log --stat总结:

--stat 选项用于更改 git log 显示信息的方式

此命令会:

显示被修改的文件

显示添加/删除的行数

显示一个摘要,其中包含修改/删除的总文件数和总行数

查看更改

git log 命令具有一个可用来显示对文件作出实际更改的选项。该选项是 --patch,可以简写为 -p:

运行该命令结果如下:

 

 总结:

git log -p命令可以让我们看到具体再哪一行修改了,显示添加/删除的行所在的位置。且 增加的内容为绿色加号,减少的内容为红色减号。

运行 git log -p --stat:

 

 运行 git log -p --stat 的结果是 --stat在上 -p在下。

处理太多滚动操作:

此操作为显示特定 commit 的详情,而不用关心仓库中的所有其他内容

有两种实现方式:

1,向 git log 提供你要查看的 commit 的 SHA

git log -p fdf5493

 

 此命令可以从任意一条知道SHA的commit开始,无需滚动并逐条查阅。

2,使用新的 git show 命令

 

 

git show 命令将仅显示一个 commit。它只显示一个 commit。git show 命令的输出和 git log -p 命令的完全一样。因此默认情况下,git show 会显示:commit

作者

日期

commit 消息

补丁信息  

git add& git commit&git diff

添加新文件,并使用git status检查状态

进入new-git-project 

 

创建html文件,,我的电脑右键新建没有html

建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件,文件内容可为空

暂存文件

在终端上运行以下命令,使用 git add 将 index.html 添加到暂存区:

 

 

 

 

暂存剩余的文件

index.html 文件已暂存。我们再暂存另外两个文件。

 

 

 

提交 Commit

如果尚未配置,可安装subline Text,并运行以下语句进行配置

git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -n -w"

注意C:\Program Files\Sublime Text 3\sublime_text.exe 为你安装后sublime的地址。

注意,你的编辑器应该会打开并且会出现以下界面:

 

 

 

 

 

 

 此时终端处于冻结状态,等待在sublime里面输入信息;

完成提交

现在保存文件并关闭编辑器窗口(只关闭面板/标签页还不够,你还需要关闭 git commit 命令打开的代码编辑器窗口)。现在回到终端,你应该能看到类似于以下内容的界面

 

 

第二个 commit - 添加更改

 

 现在做以下操作   

1) 使用 git add 命令将文件移到暂存区,并使用 git status 验证文件是否位于暂存区。

2) 提交第二个 commit 吧!使用 git commit 命令提交 commit,并添加提交说明

 

 

 

 

 

 

git diff

git diff 命令可以用来查看已被加入但是尚未提交的更改。

此命令会显示:

已经修改的文件

添加/删除的行所在的位置

执行的实际更改

gitignore

 

 

标签、分支

下面我们仍然进入,前面建立的 new-git-project 项目文件夹中,

先看该项目到目前为止的 git log 输出结果。

 

 

 

 

合并

发生合并时,git 将:

查看将合并的分支

查看分支的历史记录并寻找两个分支的 commit 历史记录中都有的单个 commit

将单个分支上更改的代码行合并到一起

提交一个 commit 来记录合并操作

 

 

合并冲突

大部分情况下,git 将能够成功地合并分支。但是,有时候 git 无法完全自动地进行合并。合并失败时,就称为合并冲突

撤销更改

更改最后一个 commit

只需纠正拼错的单词或重新表述即可!然后保存文件并关闭编辑器,以便采用新的 commit 消息。

 

 

备份分支

在进行任何重置操作之前,我通常会在最近的commit.上创建一个 backup 1分支,因此如

果出现错误,我可以返回这些commit

 

 

实验小结:通过本次实验,我了解了Git理论到实践的转化,Git 是一个分布式版本控制软件,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git 更像一个文件系统,直接在本机上获取数据,不必连线到主机端获取数据。 每个开发者都可有全部开发历史的本地副本,changes 从这种本地 repository 复制给其他开发者。这些 changes 作为新增的开发分支被导入,可以与本地开发分支合并。

思考题

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

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。

Git的功能:

查看邮件或者通过其它方式查看一般开发者的提交状态。

打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

向公共服务器提交结果,然后通知所有开发人员。

 

 

posted @ 2020-03-04 15:10  xiaosongshu  阅读(216)  评论(0)    收藏  举报