• 实验一 git代码版本管理


    实验一 git代码版本管理

    实验目的:

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

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

    实验内容:

    1)安装git

    2)初始配置git,git init statua指令

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

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

    5)掌握git revert指令

    试验记录:

    1 配置git

    #设置你的git用户名

    #设置你的git邮箱

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

    #对比显示原始状态

    2 从头创建仓库

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

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

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

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

    • mkdir - 用来新建目录

    • cd - 用来更改目录

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

    • pwd -列出当前目录

    创建项目目录

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

    目录下可在终端上运行以下命令

     git init

     可以开始使用 git init 命令了!这是最简单的命令之一。你只需在终端上运行 git init。

    终端会显示 git init 命令正在运行。该命令会在当前目录下初始化生成一个空的 Git 仓库。

    运行 git init 之后,应该会出现一段文字:"Initialized empty Git repository in",后面提示符中出现了matser。运行 git init 命

    令会初始化 Git 跟踪所有内容会用到的所有必要文件和目录。

    克隆现有仓库

    在 Git 上进行克隆的方法是调用我们将在终端上运行的命令 git clone,然后传入要克隆的 Git 仓库的路径(通常是 URL :https://github.com/udacity/course-git-blog-project )

    完整命令是:

    克隆过程中,第一行是"Cloning into 'course-git-blog-project'…"。Git 正在创建一个目录(名称与我们要克隆的项目一样),

    并将仓库放在其中!其余输出结果基本都是验证信息——也就是统计远程仓库的项目数,然后压缩并接收这些项目,并解压。进入course-git-blog-project文件夹,在浏览器中打开 index.html 文件。可用看见已经克隆的blog网页。

    判断仓库的状态

    git status 是了解 Git 的核心所在。它将告诉我们 Git 正在考虑什么,以及 Git 所看到的我们仓库的状态。当你第一次使用

    Git 时,你应该一直都要使用 git status 命令.你应该习惯于运行任何其他命令之后,都运行下该命令。这样可以帮助你了解

    Git 的工作原理,并避免你对文件 / 仓库状态做出不正确的推论。

    3 git log

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

    你可以看到 git status 的输出结果是:"nothing to commit, working directory clean",可以继续并检出该项目了。在visual studio中打开index.html

    输入git log 命令显示仓库中所有 commit 的信息

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

    • SHA
    • 作者
    • 日期
    • 消息  

     git log --oneline命令

    • 每行显示一个 commit

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

    • 显示 commit 的消息

    git log --stat命令

    显示commit中更改以及添加或删除的行数

    git log -p 显示对文件作出实际更改的选项

    处理太多滚动操作

    有两种实现方式!

    • 向 git log 提供你要查看的 commit 的 SHA

    • 使用新的 git show 命令

    git log -p fdf5493

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

    交的所有 commit 信息。

    新命令 git show

    git show fdf5493

    上行上述示例命令将仅显示最近的 commit。通常,将 SHA 作为最后一个参数提供给命令:

    git show 命令将仅显示一个 commit。因此,如果你看不到任何其他 commit,不要惊慌。它只显示一个 commit。git show

    命令的输出和 git log -p 命令的完全一样。因此默认情况下,git show 会显示:

    • commit

    • 作者

    • 日期

    • commit 消息

    • 补丁信息

                                                                                                                                                                                                                                                    

    4 git add& git commit&git diff添加新文件,并使用git status 检查状态

    (1)添加新文件,并使用git status检查状态:进入到new-git-project,创建index.html文件,建立js,css文件夹,并在文件下分别建立app.js和app.css文件,文件内容可为空。并用git status查看状态。

    (2)暂存文件:使用git add命令将文件从工作目录移到暂存区,工作目录中目前有三个未跟踪文件:index.html;css目录下的app.cs;js目录下的app.js。并用git status查看状态。

    (3)提交Commit:安装sublime Text,并运行以下语句进行配置,使得编辑器打开,在编辑器第一行输入Inital commit文本,保存文件并关闭编辑器窗口,提交第一个commit.

    使用git commit -m提交第二个commit

    (4)git diff:git status 命令告诉我们可以哪些文件被更改了,但是不会显示到底是什么样的更改,git diff却可以。Git diff命令可以用来查看已被加入但未提交的更改,在index.html中将标题从"Expedition"改为"Adventure"。保存文件,然后在终端上运行git diff。

    (5) gitignore

    5 标签、分支

    (1)添加标签:输入以下命令:git tag -a v1.0

    删除标签

    (2) 创建分支 使用git branch siderbar创建分支,git checkout命令切换分支,切换成功后提示符显示“siderbar”

    活跃分支查看:git branch

    删除分支:git branch –d

    分支实战:

    更改1-添加页面颜色:确保位于master分支上,并向css/app.css添加以下内容body{background-color:#00cae4;},将文件添加到暂存区,并将其commit到仓库,在仓库中第一行写Set background color for page,通过 git log检查commit记录。

    更改2-添加侧栏:将sidebar分支放在设置页面颜色的commit之前,向该commit添加分支命令,使用git checkout命令切换到新的siderbar分支,运行git log --oneline --decorate,运行 git log --oneline,发现Set background for page没有了。

     更改3-更改master上的标题:切换到master分支并更新页面标题,使用git checkout命令切换到master分支,保存index.html文件并进行commit已将此添加到仓库中,消息写为“Improve site heading for SEO”,提交后用git log --oneline检查。

    6 合并

    合并:现检查是否位于new-git-project;是否检出master分支;git status输出文本包括working directory clean。合并指令:git merge指令用来合并git分支

    7 撤销更改

    更改最后一个commit:运行git commit --amend,重新提供commit消息,代码编辑器打开,显示原始的commit消息,纠正错误或重新表述,然后保存文件并关闭,以便采用新信息

    (2)向commit中添加忘记文件:git commit --amend能够包含忘记包含文件(或文件更改)。

    (3)还原commit:使用git revert命令还原,找到最近的commit的SHA,运行git revert SHA,弹出代码编辑器,确认提供的commit消息。

    (4)重置:git reset命令用来重置(清除)commit;使用 --hard 选项清除 commit ;使用 --soft 选项将 commit 的更改移至暂存区;使用 --mixed 选项取消暂存已被 commit 的更改

    (5)备份分支:在最近的 commit 上创建一个 backup 分支,因此如果出现错误,可以返回这些 commit;然后运行git reset --mixed HEAD^会把commit中做出的更改一直工作目录中。

    小结

            通过老师在学习通里面给的步骤一步一步来操作,能够基本上出现大部分运行结果,学习并掌握了一些基本的git命令,在实验过程中,时常会发生命令结果与要求不符,在查阅资料和同学的帮助下,解决了困难,例如在执行命令时需要确定仓库是否正确,在分支实战中有很多命令多次错误,好在及时修改,完成了任务。总的来说,在第一次实验进行完成之后,我认识到git是一个非常强大的分布式版本控制工具,要经常用git status查询当前状态,避免错误。对于本次实验还要通过课后的进一步巩固和理解整个实验内容。

    思考题

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

    答:git和其他版本控制系统(如CVS)有不小的差别,git本身关心文件的整体性是否有改变,但多数的版本控制系统如CVS或Subversion系统则在乎文件内容的差异。git拒绝保持每个文件的版本修订关系。因此查看一个文件的历史需要遍历各个history快照;git隐式处理文件更名,即同名文件默认为其前身,如果没有同名文件则在前一个版本中搜索具有类似内容的文件。

    git更像一个文件系统,直接在本机上获取数据,不必连线到主机端获取数据。 每个开发者都可有全部开发历史的本地副本,changes从这种本地repository复制给其他开发者。这些changes作为新增的开发分支被导入,可以与本地开发分支合并。

    分支是非常轻量级的,一个分支仅是对一个commit的引用。

    git是用C语言开发的,以追求最高的性能。git自动完成垃圾回收,也可以用命令git gc --prune直接调用。

    git存储每个新创建的object作为一个单独文件。为了压缩存储空间占用, packs操作把很多文件(启发式类似名字的文件往往具有类似内容)使用差分压缩入一个文件中(packfile),并创建一个对应的索引文件,指明object在packfile中的偏移值。新创建的对象仍然作为单独文件存在。repacks操作非常费时间,git会在空闲时间自动做此操作。也可用命令git gc来直接启动repack。packfile与索引文件都用SHA-1作为校验和并作为文件名。git fsck命令做校验和的完整性验证

  • 相关阅读:
    Zephyr网络协议
    Zephyr启动过程与中断响应
    CortexM处理器的一些特性记录
    qemu 使用记录
    Request与Response详解
    http请求头(Header)参数详解
    win10java环境变量配置
    逻辑运算符:与、或、非、异或
    SQL注入相关知识整理
    网页是否存在SQL注入的简单判断
  • 原文地址:https://www.cnblogs.com/wxqaq/p/12391302.html
Copyright © 2020-2023  润新知