• 实验一GIT代码版本管理


    实验一  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.安装git

           通过下载群里老师给的安装包,成功安装git2.初始配置git  

            在开始使用git之前,要配置git,在命令行工具中运行配置代码。

        (1)配置git

              

    git用户名为“lizhenzhen",git邮箱为"2379464960@qq.com"

      (2)配置代码编译器

           使用Sublime Text编译器,所以要修改git默认编译器为Sublime Text编译器。

          路径C:Program FilesSublime Text 3sublime_text.exe是我电脑上配置sublime的路径。

    2.从头创建仓库

      (1)创建项目目录

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

               

     (2)git init 命令

               在终端上运行git init指令,该指令会在当前目录下初始化生成一个空的git仓库。

               

              运行 ls-la指令,可以显示当前目录下被隐藏的文件或文件夹

               

       (3)克隆现有仓库

      在终端上运行git clone 指令,然后传入要克隆的git仓库的路径,要确保终端的当前工作目录没有位于git仓库中,即需要分别建立两个文件夹来保管项目仓库。

                

    进入course-git-blog-project文件夹,用浏览器打开index.html文件。可以看到已经克隆的blog网页。

               

                

      (4)判断仓库的状态

               使用git status命令,git status是了解git的核心所在, git status 命令将显示很多信息,具体取决于你的文件状态、工作目录和仓库。

                

     3.git log 

          克隆course-git-blog-project 仓库后,使用命令行转到项目的目录下。可以看到 git status 的输出结果是:"nothing to commit, working directory clean",意味着我们可以继续并检出该项目了!用代码编译器打开html文件。

                

        (1)在终端运行 git log 命令

                 

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

           (2)git log --oneline

           git log --oneline可以使输出结果更简短,并节省大量空间

                  

              (3)git log --stat

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

                  

               (4)git log -p

         git log -p可用来显示对文件作出实际更改,运行该命令并查看显示结果。

               

              (5)显示特定 commit 的详情

     有两种实现方式:

          1.向git log 提供你要查看的commit的SHA,以git log -p fdf5493为例。

              

         2.使用新的git show 命令,同样以git show fdf5493为例

              

     4.git add& git commit&git diff

           添加新文件,并使用get status检查状态。

    进入到new-git-project,首先,创建一个叫做 index.html 的文件,添加老师给出的代码,建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件,文件内容可为空

             

     然后运行git status命令

            

     可看出,尽管尚未对 git 执行任何特殊操作,但是它已经在观察这个目录(因为它是 git 项目),并且知道我们创建了几个新的文件.

             (1)git add

    暂存文件,使用 git add 将 index.html 添加到暂存区,执行成功后,使用git status查看项目的状态。

                  

     终端显示 index.html 现在位于"Changes to be committed"(暂存)分类下。

    暂存剩余的文件,

    可以运行以下命令:

    $ git add css/app.css js/app.js

    或者使用 git add .   ( 句点指代当前目录,可以用来表示所有文件和目录(包括所有嵌套文件和目录!))。

                   

          (2)git commit

                      1)使用 git commit 命令,运行这条命令会打开之前配置好的编译器。编译器打开后在首行输入Initaial commit ,文本 "Initial commit" 并不特殊,只是第一个 commit 的常用消息。

                   

     然后保存文件并关闭编译器窗口,回到终端可以看到以下界面:

                    

     此时已经完成了第一个commit的提交!

                       2)如果你要编写的提交说明很简短,不想等打开代码编辑器后再输入信息,可以直接在命令行中使用 -m 选项传入信息:

                    

                       3)第二个commit-添加更改

    将以下内容添加到 index.html 中的 body 标记中:

    <header>

       <h1>Expedition</h1>

    </header>

     运行git status

                          

     终端显示了 git status 命令的结果。它显示了"Changes not staged for commit"部分,其中包含修改后的"index.html"文件

    接下来使用git add命令将文件移到暂存区,并使用git status验证文件是否存在于暂存区,然后使用git commit命令提交commit,并添加提交说明add header to blog.

                          

                  (3) get diff

      此工具可以在进行提交之前告诉我们已对文件进行了什么样的更改,git diff 命令可以用来查看已被加入但是尚未提交的更改。在 index.html 中,我们重新组织标题的措辞。将标题从"Expedition"改为"Adventure"。保存文件,然后在终端上运行 git diff

                            

     可以看到此结果和运行 git log -p 的结果一样。

                     (4)git ignore

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

                              

                              

     如果你想将某个文件保留在项目的目录结构中,但是确保它不会意外地提交到项目中,可以使用名称特殊的文件 .gitignore,将此文件添加到 new-git-project项目根目录。你只需列出希望 git ignore(忽略,不跟踪)的文件名,git 将忽略这些文件。

                             

     5.标签,分支

                  (1)git tag 标签

    进入前面建立的 new-git-project 项目文件夹中看该项目到目前为止的 git log 输出结果。

                             

     使用 git tag 命令与仓库的标签进行交互,输入以下命令: git tag -a v1.0,此命令会打开编译器,输入输入"Ready for content"作为tag,保存并退出编译器,接下来输入 git tag,命令行会显示仓库中的所有标签。然后通过调用git log 来了解标签处于仓库的那个位置。

                            

                             

     标签与 commit 相绑定。因此,该标签与 commit 的 SHA 位于同一行

                  (2)删除标签

    通过输入 -d 选项 (表示 delete 删除!)加上标签名称来删除 git 标签:

    $ git tag -d v1.0

                            

                   (3)向以前的commit添加标签

    先查询历史SHA git log --oneline,查找已经commit  的SHA,将要添加的commit的SHA提供出来即可

                          

                  (4)git branch分支

    git branch 命令用来与 git 的分支进行交互,如果我们只输入 git branch,则 git 将列出仓库中的分支:

                          

                          1)创建分支

    使用 git branch 并提供要创建的分支对应的名称。例如创建一个叫做"sidebar"的分支:

                          

                          2)切换分支

    使用 git 的 checkout 命令切换分支,然后使用git log --oneline来显示分支

                          

     现在提交的任何 commit 将添加到 sidebar 分支。

                         3)活跃分支

    判断活跃分支的最快速方式是查看 git branch 命令的输出结果。活跃分支名称旁边会显示一个星号:

                          

                        4)删除分支

    可以使用 -d 选项,告诉 git 删掉给出的分支(这里是"sidebar"分支),需要注意的是,git无法删除当前所在的分支,因此我们首先要切换到master分支上,再对sidebar分支进行删除。

                         

                        5)高效分支

    在 new-git-project 项目中进行操作,该项目中具有index.html,css/app.css(空文件),js/app.js(空文件),Index文件可以下载学习通内老师给出的文件,然后将所有文件暂存并提交到仓库,切换到master分支,运行git status, 确认出现  working tree clean 或 working directory clearn 。

                         

                       6)分支实战

           更改 1 - 添加页面颜色

    将以下内容添加到css/app.css文件中:

        body{

          background-color:#00cae4;

        }

      保存文件后将该文件添加到暂存区并将其提交到仓库中,commit的内容可写:Set background color for page,通过git log来检查commit记录。

                         

           更改 2 - 添加侧栏

    通过git log --oneline 找到指定的commit,然后向该commit添加sidebar分支:

                        

                        

    使用 git checkout 命令切换到新的 sidebar 分支。运行 git log --oneline --decorate,然后再运行get status命令,显示以下结果:

                        

                        

    此时再运行git log --oneline发现在master分支提交的”Set background color for page “ commit 已经没有了。同时app.css里面的文件也为空

                       

    通过向 HTML 文件添加以下 <aside> 代码,该代码将为页面添加一个侧栏:

                      

              更改3-更改master上的标题

    使用git check out切换到master分支上,将index.html的<h1>标题从“Expedition”更改为“Adventure”

                

    保存index.html文件并将其更改添加到仓库中,commit 消息"Improve site heading for SEO",提交后用git log --oneline 检查。

                       

               7)同时查看所有分支

    --graph 选项将条目和行添加到输出的最左侧。显示了实际的分支。--all 选项会显示仓库中的所有分支,运行此命令将显示仓库中的所有分支和commit

                      

    6.合并分支

    将分支组合到一起称为合并(merge)

              (1)合并指令

    Git merge 指令用来合并git分支,要合并sidebar分支,确保位于master分支上,因为和并的是两个不一样的分支,因此将提交commit,提交commit消息时,通常采用默认的commit消息。

                      

             (2)合并冲突

    合并失败时称为合并冲突

    人为制造一个合并冲突:

    在master分支上更改标题,将<h1>标题改为“Quest”,做出更改后,保存文件并commit到仓库

                      

    使用git log 获取上一个commit的SHA,这里选择5fdb5e,在该 commit 上创建一个heading-update分支,执行git log --oneline --graph --all查看输出

          

            

    切换到heading-upate分支再次更新标题,确保更改在 master 分支上做出更改的同一行。将"Adventure"改为"Crusade"。然后保存文件,并将文件 commit 到仓库。

           

    现在切换到master分支上执行合并:

          

    可以看到此时出现合并冲突,可以使用git status命令显示详细信息。可以在代码编译器中查看index.html文件

          

         (3)解决合并冲突

    删除所有带指示符的行,将标题改为“Adventurous Quest”,直接保存文件,将其添加到暂存区然后commit,最后使用 git diff 检查哪些内容将暂存并 commit。

           

    7.撤销更改

         (1)更改最后一个commit

    使用git commit --amend更改最近的commit,此时仓库中没有任何未commit的更改,所以可以修改消息,在其后面添加111.

          

         (2)向commit中添加忘记的文件

    修改index.html文件,将其标题改为AD,保存文件,暂存文件,运行git commit --amend。

              

         (3)git revert 命令

    git revert命令用于还原之前创建的commit

                     

                       (4)git reset命令

    用来重置(清除)commit,使用--hard清除commit,--soft将commit的更改移至暂存区,--mixed取消暂存已被commit的修改

                   

    实验问题与解决:

    1.目录从course-git-blog-project转为new-git-project后 不显示master分支。

          执行 git init命令后master就出现了,但是我在new-git-project目录例已经执行过一边git init 了。

    2.做更换master上标题的时候,没有将sidebar分支转化为master分支,就直接修改改了index.html的内容,导致后来要转换分支时,无法转换

         将已经修改好的index文件再修改为原文件,然后就可以切换分支了

    实验总结与体会:

           在这次实验时白白浪费了很多时间,因为一开始在老家没有电脑,所以用手机做不太方便,后来回家之后才又换成电脑做的,然后试验时一定要细心耐心,不然可能会因为某一个小错误就要从头开始再做一遍,浪费时间。通过这次实验,我了解了git一些相关代码的应用,受益匪浅。

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

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

    分布式版本控制系统的核心机理

  • 相关阅读:
    零基础学习Java,视频、网上直播和线下培训,哪个更好?
    艾编程:海量消息数据的处理kafka以及海量数控读取储存处理Mycat
    艾编程coding老师:深入JVM底层原理与性能调优
    Are Noisy Sentences Useless for Distant Supervised Relation Extraction?
    A Probabilistic Formulation of Unsupervised Text Style Transfer
    Orderless Recurrent Models for Multi-label Classification
    Learning from Easy to Complex: Adaptive Multi-curricula Learning for Neural Dialogue Generation
    Hyper-Parameter Optimization: A Review of Algorithms and Applications
    Capturing document context inside sentence-level neural machine translation models with self-training
    ReZero is All You Need: Fast Convergence at Large Depth
  • 原文地址:https://www.cnblogs.com/real2/p/12434036.html
Copyright © 2020-2023  润新知