实验一   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

# 设置你的 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 config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -n -w"

 

2、创建仓库

(1)创建项目目录

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

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

此处由于之前已创建过此目录,导致冲突,所以直接跳转到之前的目录。并使用pwd命令列出当前目录。

(2)克隆现有仓库

在 Git 上进行克隆的方法是调用我们将在终端上运行的命令 git clone,然后传入要克隆的 Git 仓库的路径(通常是 URL)

此处有时需要多克隆几次方可成功。

打开文件夹中的index.html文件,可看到如下网页:

(3)判断仓库的状态

此处可以通过git status命令观察仓库状态,所处分支,显示还没有提交,还有未跟踪的文件

 

3、git  log

(1)git  log

克隆course-git-blog-project 仓库后,使用命令行转到项目的目录下。可以看到 git status 的输出结果是:"nothing to commit, working directory clean",意味着可以继续并检出该项目了

git log命令用于显示仓库中所有commit的信息:SHA、作者、日期、消息

(2)git  log --oneline

git log 命令的--oneline选项可以用来更改仓库信息的显示方式,即为每行显示一个commit,并显示其SHA的前七个字符以及消息

(3)git  log --stat  :显示 commit 中更改的文件以及添加或删除的行数

(4)git log -p:显示了修改的文件以及增加/删除的实际更改。

(5)git log -w:忽略空格变化

 

4、git  add & git commit & git diff

(1)进入new-git-project,创建index.html、css、js文件夹,其中css包含app.css文件夹,js包含js.app文件夹,并在index.html中添加代码

(2)使用git status检查git是否在跟踪这些文件,并用git add将这些文件保存到暂存区

(3)提交commit:通过git commit 命令进入编辑器,编辑文本 Initial commit

(4)完成提交

(5)提交第二个commit,并添加提交说明

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

添加index.html文件,并检查状态

 

5、标签、分支

(1)git  tag标签

使用 git tag 命令与仓库的标签进行交互,输入以下命令: git tag -a v1.0 ,此命令将打开代码编辑器,并等待为标签输入信息,首先输入"Ready for content"作为tag ,再输入 git tag,命令行会显示仓库中的所有标签。

利用 git tag -d 命令,删除标签

(2)git branch分支

git branch 用来与git 的分支进行交互,它可以用来:列出仓库中的所有分支名称;创建新的分支;删除分支

创建分支(git branch sidebar),切换分支(git checkout sidebar),显示日志输出结果,删除分支(git branch -d sidebar)。

注意,无法删除当前所在分支。因此要删除sidebar分支,需要切换到master分支,或者创建并切换到新的分支

(3)高效分支

首先,确保保持相同的进度,并拥有相同的起始代码。在 new-git-project 项目中进行操作。该项目具有以下文件:index.html;css/app.css(空文件);js/app.js(空文件)

在index.html文件中添加相应代码,删除前面建好的sidebar分支,所有文件暂存并提交到仓库,切换到master分支,运行 git status,确认出现working tree clean或working directory clean.

(4)分支实战

在master分支上,打开css/app.css后添加

body {

background-color: #00cae4;}

保存文件并将其commit到仓库。其中commit的内容写了“Add color for blog”。

在终端上输入git log --oneline --graph –all,便可以看到仓库里的所有分支。

 

6、合并

 (1)合并:git 可以自动将不同分支上的更改合并到一起。这种分支和合并功能正是 git 的强大之处!你可以在分支上做出小的或大的更改,然后使用 git 合并这些更改。

git merge指令可以用于合并分支。在终端输入git merge sidebar,即可将sidebar合并到master分支上。

 (2)合并冲突:当相同的行在要合并的不同分支上做出了更改时,就会出现合并冲突。git 将在合并途中暂停,并告诉你存在冲突,以及哪些文件存在冲突。要解决文件中的冲突:找到并删掉存在合并冲突指示符的所有行;决定保留哪些行;保存文件;暂存文件;提交 commit。

 

7、撤销更改

更改最后一个commit,向commit中添加忘记的文件,还原commit

git 根据所使用选项来判断是清除、暂存之前 commit 的更改,还是取消暂存之前 commit 的更改。

(1)git revert 命令

(2)git reset 命令

 

 

实验过程中发生的问题与解决:

(1)首先在创建项目目录的时候由于前面初始配置出现错误,导致项目目录显示已建,无法再建。于是采用cd跳转的方式,跳转到已建目录,执行接下来的命令。

(2)之后在克隆仓库的时候头两次没能成功,多执行几次才克隆成功。

(3)在执行git status命令观察仓库时,发现大量未提交文件,需要commit提交。

(4)在执行git log 命令时,由于没有跳到course-git-blog-project下面,导致显示master分支下面没有任何提交,跳转后,即可显示出作者、时间等信息。

(5)在合并和撤销更改中执行命令的结果均有不对,但未能解决。

 

四、实验总结与体会

    通过此次实验,我了解了如何利用git和编辑器来创建仓库,复制仓库以及Git的一些命令的使用。整个实验总的来说完成的不是很成功,还需要完善的地方还有很多,也有一些命令执行出现错误未能来得及更改,

实验中也还有自己很模糊的地方,尤其是后面的分支、合并阶段,总是出现错误。这个实验需要大量的细心和耐心,我掌握的还不是很熟练,希望以后继续学习,能掌握更多。

 

五、思考题

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

答:分布式版本控制系统没有中央服务器,每个人的电脑上都用一个完整的版本库,只要交换对方的修改就行,把各自的修改推送给对方。git就属于分布式版本控制系统的软件,其对于分支的修改也是如此,当其中任一分支

发生更改时,通过合并,其他分支也能有对应的更改。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 posted on 2020-03-02 21:12  查方慧  阅读(240)  评论(0编辑  收藏  举报