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

 git官网上下载git windows 版本 根据自己的电脑选择下载版本 安装

 实验一 GIT代码版本管理_第1张图片

 

 

 

2.1 初始化git,掌握git init git status指令

# 设置你的 Git 用户名

git config --global user.name ""

# 设置你的 Git 邮箱

git config --global user.email ""

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

git config --global color.ui auto

# 对比显示原始状态

git config --global merge.conflictstyle diff3

git config --list

 实验一 GIT代码版本管理_第2张图片

 

 

 

 

2 从头创建仓库

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

可在终端上运行以下命令:- mkdir -p se2020-git-course/new-git-project && cd $_

运行结果如图

 

 

 

 

使用git init命令在当前目录下初始化生成一个空的Git仓库

 

 

 

 

克隆现有仓库

终端上运行的命令 git clone,然后传入要克隆的 Git 仓库的路径

输入命令 git clone,然后输入你要克隆的 Git 仓库的路径。完整命令:

 git clone https://github.com/udacity/course-git-blog-project

 

 

 

 

3)Git status 操作:

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

运行结果如图:

 

 

 

 

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

  1. 在终端运行 git log 命令

 实验一 GIT代码版本管理_第3张图片

 

 

 

git log 命令用于显示仓库中所有 commit 的信息

默认情况下,该命令会显示仓库中每个 commit 的:

SHA

作者

日期

信息

实验一 GIT代码版本管理_第4张图片

 

 

 

 

这里要注意 要会使用less中的快捷键,能让你更好地浏览所有信息

还有git log --oneline 能让展现出来的结果更短,节省大量空间

2.git log --stat 

The git log 命令有一个选项可以用来显示 commit 中更改的文件以及添加或删除的行数。该选项为 --stat(stat 是“统计信息 statistics”的简称):

运行 git log --stat截图如下

实验一 GIT代码版本管理_第5张图片

 

 

 

 

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

$ git log -p运行结果如下:

 实验一 GIT代码版本管理_第6张图片

 

 

 

 

而当同时使用这两种命令时,结果显示,二者都显示,且修改信息在下

 实验一 GIT代码版本管理_第7张图片

 

 

 

处理太多滚动操作

实际上有两种实现方式显示特定 commit 的详情

git log -p fdf5493

通过提供 SHA,git log -p 命令将从这条 commit 开始!无需滚动并逐条查阅!注意,它还会显示在所提供的 SHA 之前提交的所有 commit 信息。

新命令 git show

git show fdf5493

实验一 GIT代码版本管理_第8张图片

 

 

 

 

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

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

进入到new-git-project 

创建 HTML 文件

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

这里要注意,要用cd指令前往指定路径

 实验一 GIT代码版本管理_第9张图片

 

 

 

 

 

可用看出,尽管尚未对 git 执行任何特殊操作,但是它已经在观察这个目录(因为它是 git 项目),并且知道我们创建了几个新的文件

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

$ git add index.html

运行 git add 命令没有任何输出

实验一 GIT代码版本管理_第10张图片

 

 

 

 

输出结果中现在出现了全新的区域:"Changes to be committed"区域!这一新的"Changes to be committed"区域显示了位于暂存区的文件!目前只显示了 index.html 文件,因此暂存区只有这个文件。继续这一思路,如果我们现在提交 commit,则只有 index.html 文件会被提交。

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

现在我们可以运行以下命令:

$ git add css/app.css js/app.js

 实验一 GIT代码版本管理_第11张图片

 

 

 

提交 Commit

 要在 git 中提交 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的地址。

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

 实验一 GIT代码版本管理_第12张图片

 

 

 

在首行输入Initaial commit ,文本 "Initial commit" 并不特殊,只是第一个 commit 的常用消息。如果你想使用其他消息,完全可以!

完成提交

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

 实验一 GIT代码版本管理_第13张图片

 

 

 

如果看到了以上界面,则代表你已经提交成功

第二个 commit - 添加更改

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

   

Expedition

运行 g实验一 GIT代码版本管理_第14张图片

 

 

 

it status!

 

现在做以下操作   

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

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

 实验一 GIT代码版本管理_第15张图片

 

 

 

 

 

 

git diff!

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

 实验一 GIT代码版本管理_第16张图片

 

 

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

git tag 命令

我们将使用 git tag 命令与仓库的标签进行交互

 实验一 GIT代码版本管理_第17张图片

 

 

保存并退出编辑器后,命令行上什么也不会显示。那么如何知道已经向项目中添加了标签呢?只需输入 git tag,命令行会显示仓库中的所有标签。

 实验一 GIT代码版本管理_第18张图片

 

 

删除标签

如果将标签消息中的某个字打错了,或标签名称打错了(输入 v0.1,而不是 v1.0),如何修正这个错误?最简单的方法是删除这个标签并重新创建。

 

 

 

git branch 命令

git branch 命令用来与 git 的分支进行交互:

$ git branch

它可以用来:

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

创建新的分支

删除分支

 

 

 

要创建分支,只需使用 git branch 并提供要创建的分支对应的名称。因此,如果你想创建一个叫做"sidebar"的分支,只需运行以下命令:

$ git branch sidebar

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

 

 

 

 

git checkout 命令

注意,在进行 commit  时,该 commit 将添加到当前分支上。虽然我们创建了新的 sidebar 分支,但是没有向其添加新的 commit,因为我们尚未切换到该分支。如果我们现在进行 commit 的话,该 commit 将添加到 master 分支,而不是 sidebar 分支。我们已经在演示中看到这一情况,要在分支之间进行切换,我们需要使用 git 的 checkout 命令。

 

 

 

提示符中的分支信息很有用,但是最清晰的查看方式是查看 git log 的输出结果。就像我们需要使用 --decorate 选项来显示 git 标签一样,我们也需要该选项来显示分支。

$ git log --oneline

 

 

 

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

 

 

 

主题分支(例如 sidebar)的作用是让你做出不影响 master 分支的更改。当你在主题分支上做出更改后,如果觉得不想要该分支上的更改,则可以删掉该分支,或者你决定要保留更改,则可以将该分支上的更改与其他分支上的更改合并。

将分支组合到一起称为合并。

 

 

 

 

 

掌握git revert 指令

 

 

 

 

 

总结与体会

这次实验不是很困难,验证性实验,但很繁琐,需要注意的细节很多,比如所操作的路径等问题,一不注意就会遇到困难

我认为学了本门课程,对我以后从事程序员职业有很大的帮助,可以更好地丰富我的经验

思考题:

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

本地客户机进行操作,离线工作,快速。

安全性高,每个人电脑里都有完整的版本库,一个人的电脑换了复制其他人的一份就可以了。原子性提交,提交不会被打断(git)。工作模式非常灵活(传统的集中式工作流 + 特殊工作流 + 特殊工作流和集中式工作流的组合)。

缺点:  缺少权限管理、命令复杂混乱

 

 

 

 

 

 

 

 

你可能感兴趣的:(实验一 GIT代码版本管理)