前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git入门篇(3)--更新文件到版本库

git入门篇(3)--更新文件到版本库

作者头像
创译科技
发布2020-01-22 09:45:25
5480
发布2020-01-22 09:45:25
举报
文章被收录于专栏:Node开发Node开发

今天主要谈谈本地搭建版本库,说到本篇文章其实一把心酸一把泪,上周写得差不多了,结果遇到公众号服务器崩了,没有备份所以文章数据丢失了,然后这几天一直在加班一直没找到时间重写这篇文章昨天好不容易重写了三分之一,公司突然又停电了。说到版本库首先我们先讲讲什么是版本库吧,版本库顾名思义就是一个管理不同版本的仓库,其实我们可以直接将版本库理解为一个简单的目录,目录里面有多份不同版本的文件,我们可以在这个目录对这些版本进行维护和管理。那为什么我们需要Git来管理版本呢?我们可以来看这么一个例子:

我们做毕设的时候一般需要写毕业论文,毕业论文都分成多个周期,我们可能一开始在毕设目录添加一个论文初级版.doc,结果导师说不合格,你又修改成论文初级版修改版.doc,一直到毕设中期后期,我们的毕设目录论文的版本可能存在十几种版本,突然有一天我们需要找回之前某个版本的一段话,但是我们记不住具体在哪个版本的文件里面了,我们只能够一个版本一个版本去寻找,显而易见这样效率是很低的。所以在当今敏捷开发成为主流,研发周期短,跨地域协同开发多的大形势下,选择Git是大势所趋。接下来我们看看如何在本地搭建一个版本库。

初始化版本库

刚才有提到可以简单地认为版本库就是一个目录,我们可以先创建一个目录git_test充当版本库,之后我们可以对这个目录下的所有文件进行版本管理。那我们如何创建版本库呢?我们进入git_test目录点击鼠标右键,选择Git Bash Here,会打开控制台。这时候只需要输入命令git init就可完成版本库的初始化,也就是创建好了git_test的版本库。

可以看到在成功执行git init命令之后,git_test文件夹生成了一个.git目录,.git目录其实可以理解为Git的版本库,是Git用来管理不同版本库使用的,一般情况下不允许手动修改,否则就可能导致版本库被破坏而丢失。当我们版本库创建成功后,我们就可以使用这个版本库对git_test目录下的所有不同格式的文件进行版本管理。那说完了创建版本库,我们接下来就得来说说怎么将目录下的文件上传到版本库呢?我们一般将文件上传版本库需要两个步骤:

  • 使用git add指令添加git_test目录中的文件到暂存区,可以添加多个文件到暂存区。
  • 将需要更新到版本库的文件都上传到暂存区后,使用git commit指令将暂存区文件更新到版本库。

步骤里主要涉及三个关键词,git_test目录这个相当于工作目录,我们平时工作所有文件都在这个工作目录下,版本库其实就是刚才说到的.git目录,这个.git里面包含了什么呢?其实版本库里面有三个比较重要的东西:暂存区、主分支master和指向当前分支的指针。而我们刚才步骤中讲到了需要先将文件添加到暂存区,然后再commit提交到版本库。为什么需要暂存区这个概念呢?我们可以想象这么一个逻辑:如果我本地版本更新需要更新10个文件,如果没有暂存区这个概念,我可能需要提交十次文件到版本库,这样就会出现多个不同的版本。但是有了暂存区后我还就可以分成多次分别将10个文件添加到暂存区,然后一次commit直接将暂存区的所有修改直接提交到版本库中。说完了暂存区的概念,接下来可以来看看如何将文件上传到版本库了。

我们现在git_test工作目录下有一个文件hello.txt,现在需要将它上传到版本库中我们需要两个步骤,需要使用git add hello.txt指令添加到暂存区,然后再使用git commit -m '提交备注'指令提交暂存区修改到版本库。

我们可以看到上面截图,先使用git add添加文件到暂存区,然后使用git status查看状态会告诉我们之前没有提交到任何版本,并且目前暂存区有一个新文件hello.txt,还有三个本地文件或者目录没有提交到暂存区。最后使用git commit提交修改到版本库。会返回1 file changed, 1 insertion,意思就是一个文件出现修改,新增1行。到这里我们提交一个修改的文件到版本库就实现了,我录制了一个简单的git图来看看具体过程:

git add指令

我们先来看看第一个指令git add。刚才我们使用git add 文件名可以添加某个文件到暂存区,当然git add命令有很多种形式,我这里列举了几种我们常用的git add指令形式:

代码语言:javascript
复制
git add hello.txt    添加hello.txt到暂存区
git add .            添加工作目录下所有文件到暂存区
git add *score       添加以score结尾的文件到暂存区,比如addscore
git add score*       添加以score开头的文件到暂存区,比如scoreInfo.txt
git add project/*.md 添加project目录下所有md文件
git add -u [path]    添加path下所有被管理的文件中被修改过的文件到暂存区,path选传

我们可以简单看下下面这个录制的gif:

我们测试了每一个的命令,然后git status看看暂存区相对于本地目录的更新,最后git reset HEAD清楚暂存区数据这样可以清晰的比较每一条命令暂存区文件的修改,可以发现基本上这几个git add命令几乎可以满足我们所有添加文件到暂存区的操作了。

git commit指令

git commit指令实际上就是将暂存区的所有修改提交到版本库中。这里git commit指令其实主要也有三个命令:

代码语言:javascript
复制
git commit -m '提交备注'     提交暂存区修改到版本库,并添加提交备注
git commit -a -m '提交备注'  先将所有被版本库管理的文件先git add然后直接提交
git commit --amend          增量提交,会在父节点的基础上进行增量提交

这里主要推荐使用1,3两种方式进行提交,第二种不推荐使用。第一种很好理解,就是每次先git add文件到暂存区,再commit到版本库。第二种可以将被Git管理的而且修改过的但是没有添加到暂存区的也一起提交到版本库,一般我们都是采用主动使用git add到暂存区再进行提交。第三种则是增量提交,很简单的例子,你今天工作完成了,提交了一个2019-12-31版本,刚提交发现了一个bug,调整完你不想重新提交一个版本,这时候你就可以使用--amend参数增量提交,这样就可以在不增加一个新的commit-id的基础上将我们新做的修改追加提交到上一次提交的代码中。接下来我们看下下面这个gif图的示例操作:

一般来说上面三种commit语法足以应付我们日常工作开发的需求了。本篇关于文件更新到版本库就讲完了,也对git add和git commit常用的命令做了解释,下一篇将演示如何进行版本的管理,比如版本回退以及版本管理删除等操作。下一篇再见!

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-31,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 程序猿周先森 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com