实验一 GIT 代码版本管理

实验一 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 指令

实验记录:

(1)安装GIT

进入https://git-scm.com/downloads,选择下载 Windows 版软件,安装 Git 并选择所有默认选项。

 

 

 

安装完毕后,你应该能够在命令行工具中运行 git。如果显示了使用信息,则一切正常!

(2)初始配置GIT

 在初次配置GIT和代码编辑器过程中,因提前安装并进行了配置并没有进行截取配置过程图,通过使用git config --list进行查看,配置成功

接着进行仓库的创建,为后面进行实验打下基础 

 

 

 

 

 

 

克隆course-git-blog-project 仓库后,使用命令行转到项目的目录下。你可以看到 git status 的输出结果是:"nothing to commit, working directory clean",意味着我们可以继续并检出该项目了!

(3)git log

在终端运行 git log 命令后,将显示相关信息,见下图

 

git log 命令用于显示仓库中所有 commit 的信息。默认情况下,该命令会显示仓库中每个 commit 的:SHA,作者,日期,消息

git log --oneline

 

git clone --oneline 命令:每行显示一个 commit,显示 commit 的 SHA 的前 7 个字符,显示 commit 的消息

git log --stat 

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

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

此命令会:显示被修改的文件,显示添加/删除的行数,显示一个摘要,其中包含修改/删除的总文件数和总行数

git log -p

-p 选项(和 --patch 选项一样)用来更改 git log 显示信息的方式:此命令会向默认输出中添加以下信息:显示被修改的文件;显示添加/删除的行所在的位置;显示做出的实际更改

(4)git add& git commit&git diff

首先进入到new-git-project中,1)创建 HTML 文件

    首先,创建一个叫做 index.html 的文件,并添加一些起始代码:

<!doctype html>

<html lang="en">

<head>

    <meta charset="utf-8">

    <title>Blog Project</title>

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <meta name="description" content="">

    <link rel="stylesheet" href="css/app.css">

</head>

<body>

    <script src="js/app.js"></script>

</body>

</html>

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

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

 

暂存文件

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

$ git add index.html

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

暂存剩余的文件

index.html 文件已暂存。我们再暂存另外两个文件。现在我们可以运行以下命令:

$ git add css/app.css js/app.js或者使用 git add .

提交 Commit

使用 git 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的地址。)在首行输入Initaial commit ,文本 "Initial commit" 并不特殊,只是第一个 commit 的常用消息。如果你想使用其他消息,完全可以!

 

完成提交

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

 

添加更改

现在提交第二个 commit!将以下内容添加到 index.html 中的 body 标记中:

<header>

   <h1>Expedition</h1>

</header>

 

接着使用 git commit 命令提交 commit,并添加提交说明 Add header to blog。

 

git diff

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

要查看 git diff 的实际运行效果,我们需要一些未经提交的更改!在 index.html 中,我们重新组织标题的措辞。将标题从"Expedition"改为"Adventure"。保存文件,然后在终端上运行 git diff。

 

此命令会显示:已经修改的文件;添加/删除的行所在的位置;执行的实际更改

Git ignore

如果你想将某个文件保留在项目的目录结构中,但是确保它不会意外地提交到项目中,可以使用名称特殊的文件 .gitignore(注意文件名开头的点,很重要!)。将此文件添加到 new-git-project项目根目录。

 

.gitignore 文件用来告诉 git 不应跟踪的文件。该文件应该放在 .git 目录所在的目录

(5)标签、分支

git  tag标签

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

 

git tag -a v1.0

保存并退出编辑器后,命令行上什么也不会显示,只需输入 git tag,命令行会显示仓库中的所有标签。们已经验证了该标签位于仓库中,但是我们想知道它位于仓库的哪个位置。为此,我们需要调用一直在使用的 git log

 

git branch 分支

git branch 命令

git branch 命令用来与 git 的分支进行交互:列出仓库中的所有分支名称,创建新的分支,删除分支,要创建分支,只需使用 git branch 并提供要创建的分支对应的名称,命令将删除 master 分支中的 commit 引用的所有文件。它会将这些文件替换为 sidebar 分支中的 commit 引用的文件。

提示符中的分支信息很有用,但是最清晰的查看方式是查看 git log 的输出结果

 

活跃分支

提示符将显示活跃分支。但这是我们对提示符进行的特殊自定义,如果你使用的是不同的计算机,判断活跃分支的最快速方式是查看 git branch 命令的输出结果

 

删除分支

$ git branch -d sidebar

注意,无法删除当前所在的分支。因此要删除 sidebar 分支,你需要切换到 master 分支,或者创建并切换到新的分支。

 

高效分支

我们将在 new-git-project 项目中进行操作。该项目具有以下文件:

index.html

css/app.css(空文件)

js/app.js(空文件)

app.css 和 app.js  文件是空的

 

分支实战

 

 

 

同时查看所有分支

$ git log --oneline  --graph –all

(6)合并

合并指令

git merge 指令用来合并 git 分支:

$ git merge <name-of-branch-to-merge-in>

 

合并冲突

 

(7)撤销和更改

借助 --amend 选项,你可以更改最近的 commit。$ git commit –amend

 

还原 commit

当你告诉 git 还原(revert) 具体的 commit 时,git 会执行和 commit 中的更改完全相反的更改。

 

git revert 命令

现在我创建了一个包含一些更改的 commit,我可以使用 git revert 命令还原$ git revert <SHA-of-commit-to-revert>;git reset 命令用来重置(清除)commit:$ git reset <reference-to-commit>

 

备份分支

在进行任何重置操作之前,我通常会在最近的 commit 上创建一个 backup 分支,因此如果出现错误,我可以返回这些 commit:

 

实验总结与体会:

本次实验充分学习了git相关知识,对于相关命令使用的更加熟练。在GIT中可以进行目录查询,分支建立,进行命令的撤回,进行文件的仓库存储,以及进行文件状态的检查等等。

(1)在实验中仍然存在一些问题,比如进行git diff命令学习时,有一小部分不能及时消化和理解,在做题中发现问题。

(2)特别是到达标签和分支及以后,直接操作经常出现问题,但是经过再次尝试和理解,还是可以解决的。

(3)在进行合并操作时会有小问题,需要回头来进行再次解决。

思考题:

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

  布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便

posted @ 2020-02-25 23:05  Blueming  阅读(263)  评论(0编辑  收藏  举报