实验一 GIT代码版本管理

1、实验目的

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

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

 

2、实验内容

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 指令

 

3、实验记录

(1)安装git

  #说明:由于我使用的是Windows 10系统,下载的是Windows 64版本,故以下所有实验都在win10环境下进行。

  ①打开 https://git-scm.com/downloads网站,按红色箭头指示点击,下载git 2.25.1

  

  

  ②选择下载64-bit Git for Windows Setup

  

  ③打开下载好的程序,点击install安装,出现提示直接点next。安装好后,打开cmd。

  

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

  ①初始配置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 init 

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

  

   #现在可以输入git init,并用 git clone https://github.com/udacity/course-git-blog-project 克隆现有仓库。

  

  ③git status

  #输出结果,显示许多信息,如是git处于哪个分支等。

  

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

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

  Q实验过程中出现无法找到所需的HSA信息

  A按行滚动:上下键(J、K);按页滚动:上下(PgUp、PgDn)

  --oneline  #更改仓库信息显示方式

  --stat  #用来显示 commit 中更改的文件以及添加或删除的行数

  -p [HSA]  #可用来显示对[具体的某个]文件作出实际更改的选项

  

  

  #补:git show HSA [--stat][-p]  #只显示一个 commit。git show 命令的输出和 git log -p 命令的完全一样

   

  

   

  ②git add 

  #创建 HTML 文件,将下列代码输入进去。建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件,用git status查看状态,然后用git addit add 将 index.html 、app.js、app.css添加到暂存区。 

<!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>

  

   

   

  ③git diff 

  #可以在进行提交之前告诉我们已对文件进行了什么样的更改,这里我将<h1>Expedition</h1>修改为Adventure。

  

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

  ①git commit

现在将iindex.html、css\app.css、js\app.js从暂存区上提交commit后,将下列插入index.html的<body></body>中,用git status查看结果。再次提交,并添加提交说明 Add header to blog,用git log查看具体信息。

<header>
   <h1>Expedition</h1>
</header>

  ②git tag

  我们将使用 git tag 命令与仓库的标签进行交互,输入命令:git tag -a v1.0。上述命令将打开代码编辑器,并等待你为标签输入信息。我们输入"Ready for content"作为tag。用git tag就可以看到仓库所有的标签。用git log查看仓库信息,发现该标签与 commit 的 SHA 位于同一行,这是因为标签与 commit 相绑定。如果想删除标签可输入:git tag -d v1.0。当然,如果你想为很久之前的commit添加标签可以输入一下命令:git tag -a <标签名> <HSA>

  ③git branch

  git branch  #命令用来与 git 的分支进行交互,直接用可以查看所有分支,并且可以显示活跃分支。

  git branch <分支名称>  #可以创建一个分支 

  git branch -d <分支名称>  #可以删除分支,但强调:如果某个分支上有任何其他分支上都没有包含的 commit(也就是这个 commit 是要被删除的分支独有的),git 不会删除该分支。

  git checkout <分支名称>  #切换分支

Q无法删除分支

A所删除的就是现在的活跃分支,所以转到master后删除

   #补充:合并分支:git merge <分支名称> ,将当前活跃分支与需要合并的分支合并。注意:完全相同的行在不同的文件中更改了,将产生合并冲突

  在master分支上,我在css/app.css文件中添加了一些属性,在sidebar分支上对index.html文件添加<aside></aside>内容,并在master分支上,用git merge sidebar将两分支合并。发现合并成功!

  Q重新建立分支heading-update,分别在该分支下和在master分支下修改index.html文件的<h1></h1>里的内容,并分别提交。然后在master下尝试合并,发现出现merge failed。

  A。重新打开inde.html文件,将多余的<h1>和合并冲突指示符删除,重新添加重新提交。

 

(5)掌握git revert 指令

  Q用git revert尝试还原上一个命令,即合并两个分支的commit,发现错误

  A由于9040332是合并后的文件,所以要输入revert 这个merge commit中的哪一个

  

  git commit --amend  #更改最近的 commit

  git revert <HSA> #用来还原commit

  git reset  #用来重置(清除)commit

 

4、实验总结与体会

  1通过本次实验我初步认识了git,学习了git配置、log、add等命令,了解了git的的强大,并学会了简单的操作。

  2在实验中出现了一些错误,如分支的合并,如commit的还原,但在老师指导与网络资源的查阅下不断解决,慢慢了解、明白一些指令的规定、使用。

  3在接下来的学习中,我要不断的重复、巩固、加强对各个命令的使用并且加强对命令的优缺点的理解,拓展对git的操作知识。

 

5、思考题:

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

  答:开发者直接在各自的本地文件库工作(从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上),并容许多个开发者同时更动同一文件,而各个文件库有另一个合并各个改变的功能。这个方式让开发者能不靠网络也能继续工作,也让开发者有充分的版本控制能力,而不需经中央权威许可。分布式系统仍然可以有文件上锁功能。

posted @ 2020-03-03 21:19  生命是有光的  阅读(230)  评论(0)    收藏  举报