首页 > 其他 > 详细

Git实战训练

时间:2020-10-17 00:51:15      阅读:26      评论:0      收藏:0      [点我收藏+]

Git实战训练

以前都是一直都是对版本控制有所耳闻但从未实践过,感谢孟宁老师的指导,让我有了第一次的git体验,为后面多人合作项目提供了一个非常有用的工具。下面是孟宁老师的文章,也是本文的主要参考文献:

git综述:

关于版本控制,其实我们应该都比较熟悉,甚至经常用到,比如我们写一个文档的过程中,经常会另存为一个独立文件作为备份,来管理我们在写文档的过程中产生的不同版本,这就是版本管理,只是这是用人工的方式来做版本控制。当不同版本的数量庞大的时候,人工进行版本管理就比较容易出差错了,这时就出现了用软件系统作为工具来进行版本控制,这就是版本控制系统。

版本控制的策略比较常见的有两种:一种是独立文件或说整体备份的方式,比如使用另存为将整个项目或者整个文档整体备份一个版本;另一种就是补丁包的方式,比如使用 diff 命令将当前版本与上一个版本对比得出两者之间的差异从而形成一个补丁包,这样上一个版本加上这个补丁包就是当前版本。显然前者会产生大量重复数据,消耗比较多的存储资源,但是每一个版本都是独立且完整的;后者几乎没有重复数据,存储效率更高,但是每一个版本的补丁包无法独立使用,因为它们都需要递归地依赖上一个版本才能合并出一个完整的版本。

版本控制系统大致分为两大类,一类是中心版本控制系统,比如 Concurrent Versions System(简称 CVS)和 Subversion(简称 SVN);另一类就是分布式版本控制系统,比如我们即将重点介绍的 Git,是目前世界上最先进的分布式版本控制系统(没有之一)。

git的基本原理:

技术分享图片

场景一:Git 本地版本库的基本用法

通过git clone命令,将版本库克隆到本地完成本地版本库的初始化。git clone命令的用法如下:

git clone https://github.com/Qhxxx/git-test

通过git status查看当前工作区(workspace)的状态。

技术分享图片

通过git add命令把文件添加到暂存区(Index)

技术分享图片

通过git commit -m "wrote a commit log infro”把暂存区里的文件提交到仓库,这里需要填写用户名和邮箱作为一个标识。

技术分享图片

通过git log命令查看当前HEAD之前的提交记录,便于回到过去

技术分享图片

通过git reset --hard HEAD^^/HEAD~100/commit-id/commit-id的头几个字符进行回退

技术分享图片

通过git reflog 可以查看当前HEAD之后的提交记录,便于回到未来。

技术分享图片

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

通过从github clone一个项目到本地仓库进行管理已在场景一中执行。

通过git remote -v查看远程程序存储库信息。

技术分享图片

进行push操作,需要登陆GitHub,成功push。

技术分享图片

技术分享图片

技术分享图片

pull操作。

技术分享图片

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

为自己的工作创建一个分支git checkout -b mybranch。

技术分享图片

使用git branch 查看分支。

技术分享图片

保留mybranch分支合并分支需要关闭“快进式合并”,先切换回main分支,将远程origin/main同步最新到本地存储库,再合并mybranch到master分支,推送到远程origin/main之后即完成了一项开发工作。此处原理可以参考本文开头孟宁老师的文章。

技术分享图片

场景四:Git Rebase

为了让 log 记录将来更容易回顾参考,用 git rebase 重新整理一下提交记录。

技术分享图片

删除pick b46e2f9 send,并处理冲突。

技术分享图片

解决冲突后需要将修改后的文件存入暂存区(git add),最后执行如下命令完成git rebase,可以看到两个commit已经被删除。

技术分享图片

最后,和场景三的第4步一样,先切换回master分支,将远程origin/main同步最新到本地存储库,再合并mybranch到master分支,推送到远程origin/main之后即完成了一项开发工作。

场景五:Fork + Pull request

前面我们讨论的场景三和场景四都是在紧密合作的开发团队中使用的,这样的开发团队具有良好的信任关系,具有共同遵守的、规范的项目开发流程。但是开源社区开发活动往往是松散的团队,团队成员的技术水平或开发流程往往参差不齐、千差万别。这时如果采用场景三和场景四中推荐的参考工作流程,项目仓库的网络图就会一团糟。

为了解决开源社区松散团队的协作问题,Github提供了Fork+ Pull request的协作开发工作流程。

当你想更正别人仓库里的Bug或者向别人仓库里贡献代码时,要走Fork+ Pull request的协作开发工作流程:

  1. 先 fork(分叉) 别人的仓库,相当于拷贝一份;
  2. 做一些 bug fix或其他的代码贡献;
  3. 发起 Pull request 给原仓库;
  4. 原仓库的所有者 review Pull request,如果没有问题的话,就会 merge Pull request 到原仓库中。

使用心得

至此,场景一到场景四的实战演练,由浅入深,让我对VS Code中使用git版本控制有了一定的了解与掌握。深深的感觉到版本控制能给项目开发带来许多便捷,也希望能在以后的使用过程中进行更深入的学习。

Git实战训练

原文:https://www.cnblogs.com/ustcqhx/p/13829449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!