序言
这首诗所写2022.02.24,那天是不愠不火的一天。大部份的人都在关注此事件时,我却在偷偷地展开棕褐,依然在写更文挑战文章。呵呵,沉迷此,难以自拔,每天单厢想翻翻什么
这次就谈谈平常组织工作中用于版管理的工具——Git的介绍和采用方式。既然点进来了,就别走了,Tiruvanamalai慢慢地往下看,看完你一定会获得一些东西的,即便多于一点儿,是这一点儿的存有才促使了该文存有的意义!
思索
为什么采用Git?
开发者平常写个小程序,或是写两个多于几十行标识符的小工程项目,不须要专门的标识符管理软件,依靠自己的梦境就能把标识符撸确切。但是,两个非常大的工程项目,往往须要经过很多人相互配合数年乃至数年才能完成,因为标识符量非常大;而在开发过程中,又会面临标识符的校订查改、恢复正常等组织工作,开发者又不大可能确切地记得每天变动,这时就须要借助于版管理软件来跟踪标识符的变动心路历程。
版管理软件会给每一文档增加两个版号,每天修改之后(即便只更动两个拉丁字母),版管理软件单厢准确地纪录下来,并改变该文档的版号。这种,每一版号就会对应着文档的一次变动,据此能展开文档的对照、恢复正常等操作。
所以,Git这个版管理软件的再次出现就能帮助我们轻松地解决上面再次出现的问题,这也是我们要采用它的根源。
Git和SVN
SVN归属于典型的封闭式版控制技术,封闭式版控制技术都有两个单个的INS13ZD的伺服器,保存大部份文档的修改版,而相互配合的人们都通过应用程序连上这台伺服器,取出新一代的文档或是递交预览。若服务难以访问了,那谁都难以递交预览、还原成、对照等,也就难以相互配合。如果中央伺服器的硬盘再次出现机械故障,并且没做过存储或是存储得不够及时的话,还会有遗失统计数据的风险;最坏的情况是彻底遗失整个工程项目的大部份历史更动记录,如此一来就不能保证大部份的统计数据都被抽取出来。
而Git归属于分布式系统版控制技术,分布式系统版控制技术中的应用程序并不只抽取新一代版的文档快照,而是把原始的标识符库房完整地镜像下来。这种任何一处相互配合用的伺服器再次出现机械故障,事前都能用任何两个快照出来的本地库房恢复正常。另外,因为Git在本地硬盘上就保存着大部份当前工程项目的历史预览记录,并且Git中的绝大多数操作都只须要访问本地文件和资源,不用连网,所以处理起来速度飞快。用SVN的话,没有网络或是断开VPN就难以做任何事情;但用Git的话,没有网络也能愉快地频繁递交预览,等到了有网络的时候再上传到远程的快照库房即可。
目录
一、GIT基础
1、Git简介
Git是两个开源的分布式系统版控制技术,能有效、高速地处理从很小到非常大的工程项目版管理;也是由Linux之父Linus为了帮助管理Linux内核开发而开发的两个开放源码的版控制软件。
2、Git官网
Git官网地址:https://git-scm.com/
3、Git安装
在上述官网进入下载页面,根据各自的操作系统下载合适的安装包,然后一步步next安装完即可。如下图所示:
4、Git基本配置
安装完成之后,在任意目录下,鼠标右键选择Git Bash Here就会打开终端;然后输入全局配置邮箱和用户名的命令展开配置即可。命令如下图所示:
5、Git基本概念
接下来就谈谈Git的基本概念,弄确切概念那后续的问题就不是问题了→
5.1、Git组织工作区域
Git有4个组织工作区域,分别为:组织工作区、版库、暂存区和远程库房。
组织工作区(Working Directory):是我们工程项目的目录基本的Git组织工作流程如下:
在组织工作目录修改文档暂存文档,将文档快照放入暂存区递交预览,找到暂存区的文档,将快照永久性存储到到Git库房区(本地)将本地库房的变更推送到远程库房5.2、Git分支
分支是为了将修改记录的整个流程分开存储,让分开的分支不受其它分支的影响,所以在同两个统计数据库里能同时展开多个不同的修改。
Git自动创建的第两个分支叫主分支(也是master),一般其它分支开发完成后都要合并到主分支上。
5.3、Git文档状态
在Git中,文档主要有四种状态:Untracked、Unmodify、Modified和Staged。如下图:
参考资料:Git文档的4种状态——作者:uTank
二、Git应用实践
接下来,是用实际开发中的流程来加深对Git基础概念的理解了→
1、克隆工程项目
这里我将从github上克隆两个后台管理系统工程项目antd-admin用于演示,如下图所示:
2、标识符管理
工程项目已经成功克隆,接下来开始开发,lets go!
2.1、创建分支
当我们成功克隆两个工程项目之后,会存有两个master分支,如上面的图所示。这时我们还要创建两个develop分支就须要采用命令:git branch develop,如下图:
能通过命令:git branch列出当前分支清单;通过命令:git branch -a查看本地和远程大部份分支。
2.2、切换分支
通过命令:git checkout develop切换到新建的develop分支。
2.3、添加文档到暂存区
在develop分支上更动README-zh_CN.md文档,然后将其修改添加到暂存区。首先通过命令:git status查看组织工作区状态;然后采用命令:git add .将更动添加到暂存区,然后再查看组织工作区状态。
2.4、递交修改到库房
现在将暂存区的修改文档通过命令:git commit -m xxx将其递交到库房。
这里须要说一下,递交文本尽量遵循规范,这种一是便于后续若回滚时可快速定位递交记录,二是便于协作的同事快速了解我们的递交意图。
feat:新功能fix:bug修复docs:文档变更style:样式相关的更动refactor:重构2.5、推送修改到远程库房
然后采用命令:git push origin develop将修改推送到远程库房。在实际开发中,通常会在推送之前通过命令:git pull origin develop拉取远程库房,以此来保证本地版也是新一代的,避免是落后时要解决冲突。这里我们演示的就多于我们自己开发,所以就没有先执行拉取命令了。
然后在远程库房上就能看到我们刚刚推送的记录信息。如下图所示;
如果在推送的时候再次出现以下弹窗,那是由于远程库房的token过期了,须要先去github上创建新的token之后保存下新的token,然后执行推送时再弹出弹窗就将token作为密码输入完成后即可推送成功。
2.6、合并分支
实际开发中,我们都是先在自己的分支上开发,然后推送到自己的远程分支,最后将自己的分支合并到master之后再打包发布版。要完成上述过程,就须要先将分支切换到master,然后通过命令:git merge develop将develop分支合并到master。
2.7、版回退
如果发现这次递交不是想要的,能通过命令:git reset –hard HEAD^回退到上一次递交。
2.8、打标签
如果要发布两个版,能通过命令:git tag publish/1.0.1给这次递交打两个标签。然后能通过命令:git tag查看已打的标签信息。
能看到我们fork的这个工程项目在我们fork之前就已经打了很多标签了。
三、Git常用命令
其实在日常开发中,采用到常用命令也就几个而已,以下是我实际开发中常用的git命令。
git clone [url] git add . git commit -m xxx git pull origin [分支名] git push origin [分支名] git checkout -b [新分支名] 复制标识符话说回来,要想熟练采用,那就要记住更多命令了,下面是常用的命令汇总。
1、初始化库房
git init:在当前文档夹下创建两个.git文档夹git clone [url]:克隆两个工程项目以及它的整个标识符历史 复制标识符2、配置
git config list:显示git配置 // 全局设置递交标识符时的用户信息 git config –global user.name xxx git config –global user.email 邮箱地址 复制标识符3、增加/删除文档
git status:查看当前组织工作区的文档状态 git add.:添加当前目录的大部份文档到暂存区git add [file1] [file2]:添加指定文档到暂存区,多个文档用空格隔开 git rm [file1] [file2]:删除组织工作区指定文档,多个文档用空格隔开 git rm –cached [file]:停止追踪指定文档,但该文档会保留在组织工作区 git mv [原始文档] [更名文档]:文档改名,并且放入暂存区 复制标识符4、标识符递交
git commit -m xxx:递交标识符到库房区,没有-m会进入vim编辑器 gitcommit [file1] [file2]… -m xxx:递交指定文档到库房区,多个文档用空格隔开 复制标识符5、分支
git branch:查看本地大部份分支 git branch -a:查看本地和远程大部份分支 git branch [新分支名]:新建两个分支并停留在当前分支 git checkout [分支名]:切换到指定分支 git checkout -b [新分支名]:新建两个分支并切换到该分支 git merge [分支名]:合并制定分支到当前分支 复制标识符6、标签
git tag:查看所以标签 git tab [xxx]:新建两个标签 git tag -d [标签名]:删除本地标签 git push origin :refs/tags/[标签名]:删除远程标签 git push [remote] [标签名]:递交指定标签 git checkout -b [新分支名] [标签名]:新建两个分支并指向某个标签 复制标识符7、查看信息
git status:显示有变更文档 git log:查看当前分支的版历史 git diff:显示暂存区和组织工作区的差异 git show [commit]:显示某次提交的源统计数据和内容变动 git show [commit]:[filename]:显示某次递交时,某个文档的内容 git reflog:显示当前分支的最近几次递交 复制标识符8、远程同步
git clone [url]:克隆远程库房git fetch [remote]:下载远程库房的大部份变动 git remote -v:显示大部份远程库房 git remote add [库房名] [url]:新增两个新的远程库房并命名 git pull [remote] [分支名]:拉取远程分支并并与本地分支合并 git fetch [remote] 远程分支名x:本地分支名x:拉取远程分支并创建本地分支 git checkout -b [新分支名] [origin/远程分支名]:拉取远程分支并创建本地分支且切换到该分支 git merge [remote/分支名]:合并到当前分支 git push [remote] [分支名]:上传本地指定分支到远程库房 git remote rm [remote]:删除和远程库房的关联 复制标识符9、撤销
gitreset [file]:重置暂存区指定文档,与上次commit保持一致,但组织工作区不变 git reset –hard:重置暂存区与组织工作区,与上一次commit保持一致 git reset –hard HEAD^:回退到上一次递交 git reset –hard [commit]:重置当前分支的HEAD为指定commit,同时重置暂存区和组织工作区,与指定commit一致 git revert [commit]:新建两个commit,用来撤销指定commit;后者的大部份变动被前者抵消并应用到当前分支 复制标识符至此,Git的相关知识和采用方法就介绍完了。不管你是前端还是后端,在实际开发过程中单厢用到Git来管理版,我们不只是要会采用,更要了解它是如何组织工作的,这种才会让自己今后在和同事的版协作上更加得心应手。
好了,xdm看文至此,不要只收藏不点赞不评论呀,我相信这首诗肯定值得你点个赞再走的,3Q^_^
往期精彩文章
GitHub Copilot体验:你的人工智能结对程序员来啦快来看看我们团队是如何制定前端开发规范的前端开发中常见的浏览器兼容性问题及解决方案大汇总展望2022年,前端技术将有哪些新趋势?后语
伙伴们,如果觉得本文对你有些许帮助,点个或是➕个关注再走呗^_^ 。另外如果本文章有问题或有不理解的部分,欢迎大家在评论区评论指出,我们一起讨论共勉。