文档:《 Git 中的重要概念》
作者:燕志伟
时间:2020-06-02
版权:原创

前言

在进行深度学习的过程中,不免会接触到 Git 这个代码版本管理工具。对于小白而言,上手一些常用的命令通常不难,但是一旦遇到一些版本冲突问题的时,往往感觉不太好处理。主要原因是,大家只是对 Git 命令熟悉,对于 Git 引入的概念不太清晰。因此,我重点说明或解释一下 Git 中的重要的概念。

Brach - 分支

分支 Brach 是用来组织多个独立的,有序的 commits 链表为单位的一个概念。这个概念有以下特征:

  • 在一个 repository 中,可以有多个 branches。
  • 这些 branches 的相互是独立的。
  • 一个 branch 是一个有序的链表。链表中的每个节点是一个 commit 。

Git 系统将 branches 分为两类:

  • 第一类是 local branches ( tracking branches );
  • 第二类是 remote branches ( tracked branches)。

这里单词 local 与 remote 字面比较好理解,但也是最容易误解的概念。
我们也将 local branches 称为 tracking branches;而将 remote branches 称为 tracked branches。这样可能避免单词 local 和 remote 的误导。

这里的 local 并不是指程序员编程使用的笔记本电脑。local branches 是指在一个repository 中创建的,正在 tracking branches。

remote branches 是一种特殊的 local branches,其指在 origin repository 中创建的 local branches。注意,通常 origin repository 也存储在程序员的笔记本硬盘上。换句话说, origin repository 是个本地仓库 local repository。

好,解释到这里。大家要明白 branches 这个概念是和 repository 相关。一个repository 里有两类 branches:local branches 和 remote branches。单词 remote 不要把大家给误导了。当你的 repository 在你笔记本的硬盘上,你的 remote branches 也在这块硬盘上,和 local branches 一样。

上面说了,remote branches 是个特殊的 branches,其特点是,你不能像操作 local branches 一样直接操作它。我们需要先将 remote branches 和 local branches 做一个连接,然后通过操作 local branches 来间接操作 remote branches。

在 Git 系统中一个缺省的 local branch 的名字叫 master。这里提问一下,缺省的 remote branch 的名字叫什么?

参考资料:
[1] https://www.syntevo.com/doc/display/SG/Branches

附录002《 Git 中的重要概念》相关推荐

  1. Git中pull,commit和push的概念

    简而言之: pull:将代码托管平台上的代码下载到本地代码仓库 push:将本地代码仓库的代码上传到代码托管平台 commit:将我们编辑或正在编辑的代码提交到我们的本地代码仓库 参考文章:Git中p ...

  2. 在Git中,HEAD,工作树和索引之间有什么区别?

    有人能告诉我在Git中HEAD,工作树和索引之间的区别吗? 据我所知,它们都是不同分支的名称. 我的假设是否正确? 编辑 我找到了这个 单个git存储库可以跟踪任意数量的分支,但是您的工作树只与其中一 ...

  3. git 还原文件到其他版本_如何在Git中还原旧文件版本

    git 还原文件到其他版本 读: 第1部分:什么是Git? 第2部分:Git入门 第3部分:创建第一个Git存储库 第4部分:如何在Git中还原旧文件版本 第5部分:3个用于Git的图形工具 第6部分 ...

  4. 【java学习之路】(java框架)002.Git配置及使用

    目标 了解Git基本概念 能够概述git工作流程 能够使用Git常用命令 熟悉Git代码托管服务 能够使用idea操作git 概述 开发中的实际场景 场景一:备份 小明负责的模块就要完成了,就在即将R ...

  5. 那些git中常见的面试题及知识点

    1.列举工作中常用的git命令 1.新增文件的命令:git add file或者git add . 2.提交文件的命令:git commit –m或者git commit –a 3.查看工作区状况:g ...

  6. 如何在 Git 中保存用户名和密码?

    问: 我想在 Git Extensions.Sourcetree 或任何其他 Git GUI 中自动使用推送和拉取功能,而无需每次都在提示中输入我的用户名和密码. 那么如何在 Git 中保存我的凭据呢 ...

  7. 【亲密关系】002 社交中的吸引力

    [亲密关系]002 社交中的吸引力 前言 一.社交中的吸引力 1. 吸引力的基础假设 二.影响吸引力的因素 1. 因素一:空间的临近 2. 因素二:长相吸引力 3. 因素三:文化影响 三.经典心理的解 ...

  8. git中“我们的”和“他们的”的确切含义是什么?

    本文翻译自:What is the precise meaning of "ours" and "theirs" in git? This might soun ...

  9. 2021年大数据ELK(五):Elasticsearch中的核心概念

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...

最新文章

  1. AI在智能建筑中的应用和发展
  2. 获得一个字符的ASCII值
  3. ajax post对象参数,ajax用post方法传递参数
  4. web page web form php,Web Pages Razor
  5. 十进制转十六进制_汇编语言 输入一位十六进制数,输出其十进制表示
  6. ET框架笔记 (笑览世界写)(转)
  7. 图像处理之边缘检测概述
  8. TCP协议抓包分析 -- wireshark
  9. js判断最后一个字符是不是指定字符_结合简单的 JS 就可以让 CSS 也能做搜索
  10. nginx php 不能连接mysql_nginx配置php环境,并测试PHP是否可以连接mysql
  11. 60TB 数据量的作业从 Hive 迁移到 Spark 在 Facebook 的实践
  12. (篇一)作为一个程序猿,这些C语言实例你必须会!
  13. iView 实现可编辑表格 1
  14. mysql c库 示例_选择MySQL数据库进行连接的简单示例
  15. postgre ~模糊查询慢解决方式
  16. Js中Date日期的使用
  17. linux 编译cgal,Linux环境下CGAL配置
  18. 【科研绘图】用PPT进行科研用图的图片预处理
  19. 干货满满!亲测国内四大AI智能抠图网站
  20. Codewars笔记

热门文章

  1. flex简介——css
  2. CGWallpapers网站不登录下载图片
  3. PDN建立失败场景(二)
  4. Socket 和 ServerSocket
  5. Vue+element ui表单中省市区级联选择—v-distpicker/Cascader
  6. 树莓派开机黑屏问题解决
  7. Makefile文件名称
  8. Flutter 解决App登录页面软键盘遮挡住登录按钮或顶起底部控件的问题
  9. n9006 android6,三星N9006怎么用 三星N9006使用方法【详解】
  10. 条码打印软件中多列不干胶标签纸的设置方法