软件工程 实验一

实验一  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)实验内容结果的截图

2)实验过程中发生的问题与解决

初次配置 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 与代码编辑器

让 Git 能与你的代码编辑器结合使用。以下是三个最热门的代码编辑器。如果你使用的是其他编辑器,则在 Google 中搜索“修改 Git 默认编辑器为 X 编辑器”(将 X 替换为你的代码编辑器的名称)。

 从头创建仓库

从头创建仓库

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

init 子命令是"initialize"(初始化)的简称,这个命令很有用

创建的过程中可能涉及如下命令

  • ls - 用来列出文件和目录 

  • mkdir - 用来新建目录

  • cd - 用来更改目录

  • rm - 用来删除文件和目录

  • pwd -列出当前目录

创建项目目录

创建一个目录,叫做 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 仓库的路径(通常是 URL)。

首先需要验证终端位置,在克隆任何内容之前,确保命令行工具已定位于正确的目录下。克隆项目会新建一个目录,并将克隆的 Git 仓库放在其中。问题是无法创建嵌套的 Git 仓库。因此,确保终端的当前工作目录没有位于 Git 仓库中。如果当前工作目录没有在 shell 的提示符中显示,输入 pwd 输出工作目录。

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

完整命令是:

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

 

 

判断仓库的状态

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

 

 

 git log

git log

    克隆course-git-blog-project 仓库后,使用命令行转到项目的目录下。

    你可以看到 git status 的输出结果是:"nothing to commit, working directory clean",意味着我们可以继续并检出该项目了!

 

 git log --oneline

 

git log --stat 

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

 

git log -p

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

$ git log -p

运行该命令并查看显示结果。

 

 

 git add& git commit&git diff

1)创建 HTML 文件

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

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

 

 

 

 

 

 

git diff

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

你可能会像我一样,在晚上开始构建项目的下个功能,但是在完成之前就去睡觉了。也就是说,当我第二天开始工作的时候,有一些没有提交的更改。这很正常,因为我还没有完成新的功能,但是我不记得自上次 commit 起我到底完成了哪些代码。git status 将告诉我们哪些文件更改了,但是不会显示到底是什么样的更改。

 

gitignore

问题

假设你向项目所在目录添加了一个 Word 文档等文件,但是不希望将该文件添加到仓库中。git 会看到这个新文件,所以在你运行 git status 时,它将显示在文件列表中。

 

 标签、分支

 

git branch 分支

理解分支的工作方式

     现在该学习强大的分支功能了!git 中的分支非常灵活,使你能够实现一些很强大的功能。在详细了解一些具体的命令之前,我们先从宏观层面了解下什么是分支以及它们的工作方式

 

 

 

 

 

 

 

 

 撤销更改

更改最后一个 commit

你已经使用 git commit 命令提交了大量的 commit。现在,借助 --amend 选项,你可以更改最近的 commit。

 git revert 命令

  当我们创建了一个包含一些更改的 commit,我们可以使用 git revert 命令来还原它

git reset 的选项

git 根据所使用选项来判断是清除、暂存之前 commit 的更改,还是取消暂存之前 commit 的更改。这些选项包括:

  • 使用 --hard 选项清除 commit

  • 使用 --soft 选项将 commit 的更改移至暂存区

  • 使用 --mixed 选项取消暂存已被 commit 的更改

 

实验总结与体会:(以下内容根据各自实验情况填写)

 通过这次实验我初步了解分布式分布式版本控制系统的核心机理,熟练掌握git的部分基本指令和分支管理指令。对配置git ,git init git status,git log ,git add ,git diff ,git tag git branch,git commit git revert 指令有所了解,这次实验虽然结束了但是各种知识点也只是有所了解,希望自己通过课后的进一步巩固强化能够更好的吸收各个知识内容。

 

思考题:(以下内容根据各自实验情况填写)

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

 Git词条网站:https://baike.baidu.com/item/GIT/12647237?fr=aladdin

Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

原文地址:https://www.cnblogs.com/jingxinerwei/p/12366886.html