• 软件工程 实验一


    实验一  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)能力。

  • 相关阅读:
    正则表达式(转)
    Collections中的shuffle()方法
    Fermat定理
    哈希算法(转)
    Hungarian method (匈牙利算法)----解决指派问题(转)
    蒙塔卡洛模拟
    线程的礼让
    线程间的沟通
    安装rlwrap
    yum切到光盘源
  • 原文地址:https://www.cnblogs.com/jingxinerwei/p/12366886.html
Copyright © 2020-2023  润新知