实验一 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 仓库进行 commit 或执行任何其他操作之前,需要一个实际存在的仓库。要使用 Git 新建一个仓库,我们将使用 git init 命令。

创建项目目录

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

mkdir -p 2020-git-course/new-git-project&& cd $_ 创建目录

git init  初始化仓库

终端会显示 git init 命令正在运行。该命令会在当前目录下初始化生成一个空的 Git 仓库。

 

 克隆现有仓库

在克隆任何内容之前,确保命令行工具已定位于正确的目录下。改变工作目录如下图所示

输入命令 git clone,然后输入你要克隆的 Git 仓库的路径。实验使用以下 URL :https://github.com/udacity/course-git-blog-project 。

完整命令是:

 git clone https://github.com/udacity/course-git-blog-project。克隆过程会显示出来如图

 

 git命令

git log

克隆course-git-blog-project 仓库后,使用命令行转到项目的目录下。可以看到 git status 的输出结果是:"nothing to commit, working directory clean"。

git log 命令用于显示仓库中所有 commit 的信息修改的时间和作者和修改的内容。如下图

 

 git log --oneline

git clone --oneline 命令:

  • 每行显示一个 commit

  • 显示 commit 的 SHA 的前 7 个字符

  • 显示 commit 的消息

 

git log --stat 

显示 commit 中更改的文件以及添加或删除的行数

 

 

git log -p

命令具有一个可用来显示对文件作出实际更改的选项。该选项是 --patch

$ git log -p

  • 此命令会向默认输出中添加以下信息:

  • 显示被修改的文件

  • 显示添加/删除的行所在的位置

  • 显示做出的实际更改

 

git add

进入到new-git-project

创建 HTML 文件

    首先,创建一个叫做 index.html 的文件,并添加一些起始代码,建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件。

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

$ git add index.html如下图

 终端显示 index.html 现在位于"Changes to be committed"(暂存)分类下

commit

git config --global core.editor配置代码编辑器。由于编辑器路径输入错误,所以出现提示进而纠正。如下图

 

 下图中由于未设置用户名和邮箱所以出现提示,进而重新设置。

 

 一切正确之后 git commit,提交到仓库。

 

 git diff

此命令会显示:

  • 已经修改的文件

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

  • 执行的实际更改

可以在进行提交之前告诉我们已对文件进行了什么样的更改。

在 index.html 中,将标题从"Expedition"改为"Adventure"。保存文件,然后在终端上运行 git diff如下图

 

 git tag

使用 git tag 命令与仓库的标签进行交互,输入以下命令

 git tag -a v1.0
命令将打开代码编辑器,并等待你为标签输入信息

 

 git branch

  • 列出仓库中的所分支名称

  • 创建新的分支

  • 删除分支

git branch 命令用来与 git 的分支进行交互,当前分支为master

 

 创建分支

创建一个叫做"sidebar"的分支

git branch sidebar创建了 sidebar 分支,但是它还不是当前分支,目前提示符显示的是当前分支master。要使用该sidebar分支,你需要切换到该分支

 

 git checkout

运行该命令将:

从工作目录中删除 git 跟踪的所有文件和目录(git 跟踪的文件存储在仓库中,因此什么也不会丢失)

转到仓库,并提取分支指向的 commit 所对应的所有文件和目录

 

git merge

用来合并 git 分支

要合并 sidebar 分支,确保你位于 master 分支上,并运行:

$ git merge sidebar

 

 git revert

此命令:将撤消目标 commit 所做出的更改,创建一个新的 commit 来记录这一更改。下图中更改了最近一个SHA。

 

 git reset

可以将 HEAD 和当前分支指针移到目标 commit,清除 commit,将 commit 的更改移到暂存区,取消暂存 commit 的更改。

 git 根据所使用选项来判断是清除、暂存之前 commit 的更改,还是取消暂存之前 commit 的更改。这些选项包括:使用 --hard 选项清除 commit,使用 --soft 选项将 commit 的更改移至暂存区,使用 --mixed 选项取消暂存已被 commit 的更改

 

实验总结与体会

本次实验是验证性的实验,内容很丰富,首先安装了git然后介绍了很多git 指令和相关操作,能挖掘很多潜在的隐藏信息。在实验过程中,按照实验步骤一步步来,有不懂的地方直接百度搜索就可以解决,基本没有问题,虽然过程很多。让我对git分布式版本控制系统有了一定的认识。

 

思考题

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

Git 是用于 Linux内核开发的版本控制工具,不必服务器端软件支持。

工作区:你当前进行工作的区域,是文件系统中的目录

暂存区: 记录了下次提交将要保存仓库中的文件

仓库:记录了某次提交的完整状态和内容。

流程就是将工作区中的文件,先保存到暂存区中,当执行commit的时候,将暂存区中的文件保存到仓库中,如果暂存区没有内容,就不能commit。

 

posted @ 2020-03-01 23:44  蔡虚空  阅读(152)  评论(0编辑  收藏  举报