软件工程 实验一 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)实验过程中发生的问题与解决。

1.安装git 

        下载windows版本的git软件,安装git并选择所有默认选项,安装完毕后,在桌面空白处右击,可以显示使用信息,安装成功。

                    

2.初始配置git

   2.1初次配置git(设置用户名、邮箱、确保输出内容带有颜色、对比显示原始状态)

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

    2.2git与代码编辑器(本次实验选择Sublime Text编辑器)

        

 3.创建仓库

   3.1创建项目目录

       创建一个目录: se2020-git-course,在该目录中,创建另一个目录: new-git-project,使用 cd 命令移到 new-git-project 目录下。(在桌面上可看见新建的文件夹)

       运行git init,会在当前目录下初始化生成一个空的 Git 仓库。(选择文件夹->查看->勾选显示隐藏的项目,可以看见.git文件夹)    

       

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

    3.2克隆现有仓库

        确保终端的当前工作目录没有位于 Git 仓库中,输入命令 git clone,然后输入要克隆的 Git 仓库的路径,本次实验路径为:https://github.com/udacity/course-git-blog-project (当前目录为:se2020-git-course)

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

    3.3判断仓库状态

      使用命令:git status,可以显示Git正在考虑什么,以及仓库的状态。(当前在new-git-project中)       

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

     由于没有实施任何操作,此目录为空目录,所以显示没有已提交信息,也没有任何待定的修改。

  思考:如何证明此仓库尚无任何commit?

         运行命令git log,结果显示does not have any commits。

    

4.git log

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

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

    4.1git log --oneline命令

       git log --oneline,可以用来更改仓库信息的显示方式。(由于当前只提交了两个文件,显示的信息只有两条)

       

   其中显示格式为:

  • 每行显示一个 commit

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

  • 显示 commit 的消息

    4.2git log --stat命令

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

      此命令会:

  • 显示被修改的文件

  • 显示添加/删除的行数

  • 显示一个摘要,其中包含修改/删除的总文件数和总行数

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

    4.3git log -p 命令

        git log -p 命令可用来显示对文件作出实际更改的命令。(在对文件进行各种操作后)

      此命令会:

  • 显示被修改的文件

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

  • 显示做出的实际更改

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

4.4git show 命令

     a.向git log 提供要查看的commit 的SHA,将从这条 commit 开始!无需滚动并逐条查阅!注意,它还会显示在所提供的 SHA 之前提交的所有 commit 信息。

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

   b.使用git show命令,将显示最近的commit(只有一个)。

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

    其中git show 可以与其他选项一起使用:

  • --stat 显示更改了多少文件,以及添加/删除的行数

  • -p 或--patch 显示默认补丁信息

  • -w 忽略空格变化

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

5.git add& git commit&git diff

     5.1 新建文本

        a.进入new-git-project创建HTML文件,添加一些起始代码.

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

        c.输入命令git status,查看当前状态

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

      从输出结果中可以看出,新建的三个文件没有被git跟踪。

   5.2 git add

      使用 git add 将 index.html 添加到暂存区,再用get status查看当前状态。

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

        可以看出index.html已位于暂存区。

     暂存另外两个文件可输入:git add css/app.css js/app.js或者git add .

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

   5.3 git commit

      使用git commit命令,来提交commit。(当前已配置好 subline text编辑器)

     

     编辑器自动打开后界面为:

       软件工程 实验一 GIT代码版本管理_第14张图片

 在编辑器首行输入:Initial commit,保存文件并关闭编辑器窗口,回到终端,可以看见:

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

   5.4 使用 -m 选项绕过编辑器

     a.在index.html 中的body标记中加入

 

     b.运行git status(显示了index.html修改后的文件)

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

      c.用 git add 命令将文件移到暂存区,并使用 git status 验证文件是否位于暂存区。(结果显示此文件已位于暂存区)

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

      d.使用 git commit 命令提交 commit,并添加提交说明。

         

      e.使用git log 检查刚刚提交的commit。

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

   5.5 git diff

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

      此命令会显示:

  • 已经修改的文件

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

  • 执行的实际更改

      例:用git diff 命令来查看已加入但是尚未提交的更改。在index.html中将标题改为Adventure,保存后在终端上运行git diff。结果显示为:

         软件工程 实验一 GIT代码版本管理_第19张图片

    5.6 gitignore

         因为git add .会添加所有文件,当想将某个文件留在项目中的目录结构中,但是确保它不会意外地提交到项目中,可以用特殊文件名.gitignore,将此文件添加到项目的根目录中,列出希望git ignore 的文件名,git将忽略这些文件。

       a.建立word文件project.docx:用touch .gitignore命令生成.gitignore文件,并将此文件名保存在.gitignore文件中。

            软件工程 实验一 GIT代码版本管理_第20张图片

       b.运行git status命令,查看输出结果:

              可以看出word文档不再列为未跟踪文件,但列出了新的'.gitignore'文件。    

               软件工程 实验一 GIT代码版本管理_第21张图片

6.标签、分支

  6.1git tag 标签

      6.1.1创建标签

        a.进入new-git-project项目文件夹中,使用git tag命令与仓库的标签进行交互,输入:git tag -a v1.0

        b.系统自动打开代码编辑器,在第一行输入"Ready for content"作为tag。

        软件工程 实验一 GIT代码版本管理_第22张图片

    6.1.2验证标签

       保存并退出编辑器后,回到终端界面,输入git tag显示仓库中的所有标签。

       

      使用git log,可查看该标签位于仓库的哪个位置。(2.13版本中git log --decorate与其结果一致)

        软件工程 实验一 GIT代码版本管理_第23张图片

    6.1.3删除标签

         可以通过输入 -d 选项加上标签名称来删除 git 标签。例:git tag -d v1.0将之前建的标签删除了。

         

     6.1.4向以前的commit添加标签

        只需提供要添加标签的 commit 的 SHA,即可向仓库中很久之前的 Commit 添加标签。其中可以通过查询历史SHA git log --oneline,查找已经commit  的SHA。

         例:查询已commit的SHA为:

             软件工程 实验一 GIT代码版本管理_第24张图片

      向 SHA 为dac1263的 commit 添加标签v1.0

             软件工程 实验一 GIT代码版本管理_第25张图片

   6.2git branch分支

     6.2.1git branch命令(用来与git的分支进行交互)

        可以用来:列出仓库中的所有分支名称;创建新的分支;删除分支            

        例:结果显示了master分支

           

     6.2.2创建分支

       使用git branch ,并提供要创建的分支对应的名称。

       例:创建一个名为“sidebar"的分支。

          

         使用 git 的checkout命令,在分支间进行切换。

           软件工程 实验一 GIT代码版本管理_第26张图片

          查看git log的输出结果,来显示分支。

                

         其中:特殊指示符“HEAD"指向当前分支”sidebar",现在提交的任何 commit 将添加到 sidebar 分支。

     6.2.3活跃分支

         提示符将显示活跃分支。用git branch命令快速判断活跃分支,其中活跃分支名称旁边会显示一个星号。

         

     6.2.4删除分支

       可以使用-d选项,删除分支。(大写的D,可以进行强制删除)

     例:删除之前创建的分支“sidebar”,由于无法删除当前分支,所以要先切换到master分支再删除。

          软件工程 实验一 GIT代码版本管理_第27张图片

 6.3高效分支

      在new-git-project项目中,按照实验内容修改index文件内容,然后删除前面建好的 siderbar 分支、所有文件暂存并提交到仓库、切换到master分支、运行git status

           

     由于之前已经将sidebar分支删除,这里找不到此分支无法删除

         软件工程 实验一 GIT代码版本管理_第28张图片

 6.4分支实战

      a.添加页面颜色

          软件工程 实验一 GIT代码版本管理_第29张图片    软件工程 实验一 GIT代码版本管理_第30张图片

     b.添加侧栏

        由上图选择SHA为8862b05,并建立sidebar分支;

        切换到sidebar分支上;

        运行git log --oneline --decotate命令

       软件工程 实验一 GIT代码版本管理_第31张图片  

        结果显示:在master分支提交的“Set backageround color for page" commit 没有了;

                           打开css/app.css,发现文件为空。

        向index.html文件中添加

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