Git实操
实验目的
1)了解分布式分布式版本控制系统的核心机理;
- 熟练掌握git的基本指令和分支管理指令;
实验内容:
1)安装git
2)初始配置git ,git init git status指令
3)掌握git log ,git add ,git diff 指令
- 掌握git tag git branch,git commit 指令
5)掌握git revert 指令
安装
去官网找安装,分为GUI和SHELL,主要使用GUI,SHELL还没有尝试过,SHELL的界面是这个样子的,这里主要使用SHELL。
使用
Git init
运行命令行,进入你所在的项目目录,输入get init,则在该目录下生成.git文件,此文件记录了你的所有提交,并记录了你的所有修改,这是这个仓库的核心,所以这个文件非常的重要,不允许删除或者修改。
Git Clone
Git Clone是我们把在互联网上的仓库克隆到我们本地的仓库中,在本地仓库中,你可以对克隆的项目进行各式各样的修改。该命令的第1个参数是互联网的url地址,后面的参数默认是这个项目的名字,但是你也可以自己修改它的名字,如果没有运行get init,直接运行克隆,会默认对他进行git init。
Git Status
表现此时仓库的各项情况,仓库中工作区暂存区和提交区的状态,是否存在分支以及属于哪个分支当中。
Git Log
显示在这个仓库中曾经提交过的提交记录。经常以图形化的形式来进行展示.
-
git log --oneline --graph
-
git log --stat
-
git log --patch
-
git log -p [SHA/ART/DATA/MSG]
-
git show [SHA]
Git Add
此命令将工作区的文件添加到暂存区,使用get stauts查看此时暂存区的文件状态,如果你添加了不想添加的文件,到暂存区使用git rm --cached来删除这个文件.
Git Commit
此命令将暂存区的文件添加到仓库中,运行此命令之后,会打开代码编辑器,在代码编辑器中会展示一系列信息如此次提交的注释信息,此时是第几次提交,以及提交的文件列表。
Git Diff
Git diff用于显示哪些文件已经修改了
Git Ignore
运行此命令,将在此仓库不跟踪这些文件,你也可以创建一个特殊的文件.gitignore,并采用通配符来忽略一系列相似的文件.
Git Tag
用于标注具有特定含义的提交,这些标签可以代表的含义,如标签创建者标签,创建日期以及标签消息,删除标签采用git tag -d [标签名]如果向往以前的提交中添加标签,可以使用git tag -a [name] [SHA]
Git Branch
在分布式管理系统中,最最强大的就是其分支功能,可以创建各种各样的分支,来满足不同的开发需求。
-
git branch
查看这个仓库中所有的分支
-
git branch [name]
创建一个新的分支
-
git checkout [name]
切换到另一个分支
-
git branch -d [name]
删除一个分支
git merge
主题分支(例如 sidebar)的作用是让你做出不影响 master分支的更改。当你在主题分
支上做出更改后,如果觉得不想要该分支上的更改,则可以删掉该分支,或者你决定要保留更
改,则可以将该分支上的更改与其他分支上的更改合并.
在合并时,务必要知道处于哪一个分支,防止合并后产生错误的提交
git merge [name-of-branch-to-merge-in]
此命令可以让你合并你想要合并的分支。
合并冲突
合并冲突产生的原因是完全相同的行在不同的分支中被修改了,导致git不知道该选择哪一个,此时就会产生合并冲突。
但是解决合并冲突也是非常简单的,通过合并冲突指示符来查看,保存你需要的内容,删掉不需要的内容。
撤销与更改提交
git commit --amend
这个命令用来更新最后一次提交,在你需要对最后一次提交内容进行修改时,又不希望增加新的提交,你就可以使用这个命令。
git commit revert
这个命令用来还原一次提交,但这个命令本身就是一次提交。
git commit reset
使用-hard选项清除 commit
使用-soft选项将 commit的更改移至暂存区
使用-mixed选项取消暂存已被comm的更改
分支引用
你已经知道可以使用SHA、标签、分支和特殊的HEAD指针引用 commit.有时候这些并不足够,你可能需要引用相对于另一个 commit的 commit.例如,有时候你需要告诉git调用当前commit的前一个 commit,或者是前两个 commit.我们可以使用特殊的祖先引用字符来告诉git这些相对引用。这些字符为:
- ^ 表示父 commit
- 表示第一个父 commit
实验总结与体会:
在此次实验中,进行了对git的使用,因为之前有了解国这方面的内容,所以实验的难度不是很大,但在实验的测试题中,仍存在错误,如:
思考题
分布式版本控制 (DVCS) 是一种不需要中心服务器的管理文件版本的方法,但是它也可以使用中心服务器。更改可以被合并到 DVCS 的任何其他用户的系统中,因此可以实现非常灵活的工作流。
它比集中的版本控制更灵活,因为它除了支持传统的(集中式)工作流,还支持其他各种工作流;它比集中式服务器快得多,因为大多数操作在客户机本地进行,而不需要网络操作。