JavaScript实现euclideanDistance欧氏距离算法(附完整源码)

《数据结构》知识点Day_04

  返回  

四. 通过实际操作学习Git

2021/8/21 23:41:51 浏览:

四. 通过实际操作学习Git

1. 基本操作

1)git init ——初始化仓库

必须先创建一个目录并初始化为git仓库,如果初始化成功,该目录下就会生成 .git目录,里面存储着管理当前目录内容所需的仓库数据;

2)git status ——查看仓库状态

只要对Git的工作树或仓库进行操作,git status命令的显示结果就会发生变化;所以操作中会不停的查看仓库状态;

3)git add ——向暂存区中添加文件

要是想让一个文件成为Git仓库的管理对象,就需要用git add命令将其加入暂存区中。暂存区是提交之前的一个临时区域。

4)git commit ——保存仓库的历史记录

git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

5)git log ——查看提交日志

git log命令可以查看以往仓库中提交的日志。包括可以查看什么人在什么时候进行了提交或合并,以及操作前后有怎样的差别。

2. 分支的操作

在进行多个并行作业时,我们会用到分支。在这类并行开发的过程中,往往同时存在多个最新代码状态。如下图所示,从master分支创建feature-A分支和fix-B分支后,每个分支中都拥有自己的最新代码。master分支是Git默认创建的分支,因此基本上所有开发都是以这个分支为中心进行的。在这里插入图片描述
不同分支中,可以同时进行完全不同的作业。等该分支的作业完成之后再与master分支合并。比如feature-A分支的作业结束后与master合并,如下图所示。
在这里插入图片描述
通过灵活运用分支,可以让多人同时高效地进行并行开发。下面说一说关于分支的Git操作;

  • git branch ——显示分支一览表
    git branch命令可以将分支名以列表显示,同时可以确认当前所在分支(前面有*的就是)。

  • git checkout -b ——创建/切换分支
    如果想以当前的master分支为基础创建新的分支,我们需要用到git checkout -b命令。如下:

     git checkout -b feature-A
    

    这时再来查看分支列表,会显示我们处于feature-A分支下。
    在这个分支下提交代码,就会提交至feature-A分支。像这样不断对一个分支(例如feature-A)进行提交的操作,我们称为培育分支。而这个过程并不会影响主干分支,各枝干可以进行并行开发。他们只做特定的功能,就算发现bug也不做改动,所以称为特性分支

  • git merge ——合并分支
    假设feature-A已经实现完毕,想要将它合并到主干分支master中。首先切换到master分支,再合并feature-A分支。为了在提交日志中明确记录下本次合并,我们需要创建合并提交。因此,在合并时加上–no-ff参数。

     git merge --no-ff feature-A
    

    随后编辑器会启动,用于录入合并提交的信息,默认信息中已经包含了是从feature-A分支合并过来的相关内容,所以可不必做任何更改。将编辑器中显示的内容保存,关闭编辑器。
    这样一来,feature-A分支的内容就合并到master分支中了。

  • git log --graph ——以图表形式查看提交日志
    用git log --graph命令进行查看的话,能很清楚地看到特性分支(feature-A)提交的内容已被合并。

3. 更改提交的操作

  • git reset ——回溯历史版本
    Git的另一特征便是可以灵活操作历史版本。借助分散仓库的优势,可以在不影响其他仓库的前提下对历史版本进行操作。
    要让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要用到git reset --hard命令。只要提供目标时间点的哈希值(可以通过git log查看),就可以完全恢复至该时间点的状态:

     git reset --hard  目标时间点的哈希值 
    

    git log命令只能查看以当前状态为终点的提交日志。而git reflog命令,可查看当前仓库的所有操作日志。

  • git commit --amend ——修改提交信息

     git commit --amend
    

    执行上面的命令后,编辑器就会启动。
    其中包含之前的提交信息。找到他修改为新的,然后保存文件,关闭编辑器。

4. 推送至远程仓库

远程仓库顾名思义,是与我们本地仓库相对独立的另一个仓库。让我们先在GitHub上创建一个仓库,并将其设置为本地仓库的远程仓库。

1)创建远程仓库

创建时请不要勾选Initialize this repository with a README选项。因为一旦勾选该选项,GitHub一侧的仓库就会自动生成README文件,从创建之初便与本地仓库失去了整合性。

2)git remote add——添加远程仓库

git remote add origin git@github.com:yangjinniu/hello-world.git

执行上述命令,Git会自动将git@github.com:yangjinniu/hello-world.git远程仓库的名称设置为origin(标识符)。

3)git push——推送至远程仓库

  1. 推送至master分支
    如果想将当前分支下本地仓库中的内容推送给远程仓库,需要用到git push命令。现在假定我们在master分支下进行操作。

    git push -u origin master
    

    像这样执行git push命令,当前分支的内容就会被推送给远程仓库origin的master分支。-u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的upstream(上游)。添加了这个参数,将来运行git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从origin的master分支获取内容,省去了另外添加参数的麻烦。

  2. 推送至master以外的分支
    除了master分支之外,远程仓库也可以创建其他分支。举个例子,我们在本地仓库中创建feature-D分支,并将它以同名形式push至远程仓库。

    git checkout -b feature-D
    git push -u origin feature-D
    

    现在,在远程仓库的GitHub页面就可以查看到feature-D分支了。

5.从远程仓库获取

1)git clone——获取远程仓库

git clone git@github.com:yangjinniu/hello-world.git

2)从远程仓库获取feature-D分支

git checkout -b feature-D origin/feature-D

第一个feature-D为本地仓库中新建分支的名称,新建分支名称后面是获取来源的分支名称。

3)git pull——获取最新的远程仓库分支

如果本地仓库分支不是目前最新的版本,可以使用如下命令进行更新:

git pull origin feature-D

GitHub端远程仓库中的feature-D分支是最新状态,所以本地仓库中的feature-D分支就得到了更新。今后只需要像平常一样在本地进行提交再push给远程仓库,就可以与其他开发者同时在同一个分支中进行作业,不断给feature-D增加新功能。

如果两人同时修改了同一部分的源代码,push时就很容易发生冲突。所以多名开发者在同一个分支中进行作业时,为减少冲突情况的发生,建议更频繁地进行push和pull操作。

只要掌握了本章的知识,就足以应付日常开发中的大部分操作了,但是在实际的开发现场,往往要用到更加高级的Git操作。可以查看一下资料:

  1. Pro Git
    Pro Git是一部零基础的Git学习资料。可以免费阅读到包括简体中文在内的各国语言版本。
  2. LearnGitBranching
    LearnGitBranching是学习Git基本操作的网站。注重树形结构的学习方式非常适合初学者使用,点击右下角的地球标志还可切换各种语言进行学习。

6.说明

本文为《GitHub入门与实践》读书笔记,如有错误,还请兄弟们指正,大家一起进步。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号