高软作业01

参考资料为中科大软件学院孟宁老师所写的一篇文章,文章地址:https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg

谢谢老师!

 

场景一:Git 本地版本库用法参考

主要是在本地对源代码进行基本的版本控制,主要通过git addgit commit -m提交版本,有了提交记录之后可以灵活地将当前工作区里的源代码回退到过去的某个版本,也就是回到过去。回到过去之后,也有可能发现之前撤销的某个版本是有价值的,希望找回来,这就需要回到未来。过去和未来之间的分界点就是HEAD,即当前工作区所依赖的版本。

操作如下:

1.首先使用git init命令初始化一个本地版本库

init成功后,实验文件夹下会多出了一个.git文件夹。

.git文件夹内部结构如下:

其中:

hooks(钩):存放一些shell脚本

Infoexclude:存放仓库的一些信息

logs:保存所有更新的引用记录

objects:存放所有的git对象

 

2.一些Git 本地版本库的基本命令用法:

(1)用git status命令查看当前工作区(workspace)的状态:

首先需要新建一个readme.md文件,如下:

 

再用git status命令查看当前工作区(workspace)的状态:

可以看到新建的readme.md文件没有被追踪到,此时使用git commit是无法提交的

(2)使用git add [FILES]命令将文件加入git暂存区,再用git status命令查看当前工作区(workspace)的状态:

可以看到新建的readme.md文件被追踪到。

(3)使用git reset将文件从暂存区移除,再用git status命令查看当前工作区(workspace)的状态:

 

(4)使用git commit -m "first commit" readme.md 命令把暂存区里的文件提交到仓库,并用git log 命令查看当前HEAD之前的提交记录,便于回到过去:

 

 

(5)修改文件后再次提交,并用git reset指令回到上一个版本,使用git log 命令查看当前的提交记录:

 

 

 

场景二:Git 远程版本库的基本用法

1.在github上找到一个仓库,复制其地址

 

 

 2. 将仓库地址设置为git的远程仓库地址,并使用git clone命令从github上克隆到本地

 

 

 3.在github上修改文件后使用git pull <远程分支> <本地分支>命令拉取更新

git pull命令是git fetch与git merge的结合,git push命令与其类似。

 

场景三:团队项目中的分叉合并

  在开发中参与项目时,已经发布的项目整体在master分支上不断向前迭代,每个人开发的功能为了不与项目混淆需要在完成最终测试前独立开发,这个时候我们会用git的分支及其相关操作

1、新建分支并切换到新分支git checkout -b <branch>

 

2.使用git checkout <branch>切换分支

在该分支上完成某单一功能模块或代码模块的开发工作;多次进行如下操作:

git add FILES

git commit -m "commit log"

最后,先切换回master分支,将远程origin/master同步最新到本地存储库,再合并branch到master分支,推送到远程origin/master之后即完成了一项开发工作。

 

场景四:Git Rebase

git merge和git rebase都是去合并分支代码,但是两者也有不同之处,区别如下:

git merge合并分支代码是会让两个分支的每一次提交都按照提交时间排序,并且会将两个分支的最新一次commit点进行合并成一个新的commit。

而git rebase将本地的多次提交合并为一个,整理自己的提交记录,简化提交历史。并不根据两个分支上实际的每次提交的时间点排序,git rebase完成后,切到基分支进行合并另一个分支时也不会生成一个新的commit点。查阅资料可以发现,git rebase相比git merge更简洁,git merge会产生多条分支而git rebase产生一个直线提交记录。

 

使用git rebase -i HEAD^^^指令对三次提交做合并操作

 

前两次的记录也从log中消失

 

posted @ 2021-04-02 21:52  qyzhang  阅读(22)  评论(0编辑  收藏  举报