虽然这个系列的文章主要关注的是Github,然而首先了解下Git的基本概念和名词也是非常有帮助的。

工作目录(Working Directory)

工作目录是你个人计算机上的一个目录。在该目录下,每一个开发人员都有一套完整代码文件和相关文件的拷贝。在这个工作目录下的代码文件,Git就能自动进行版本控制。

Git文件

在工作目录中,您可能会发现一些额外的文件, .gitattributes和 .gitignore,这些用于告知Git如何处理文件夹中的文件。.gitattributes会告诉 Git 如何处理各种文件的比较操作。.gitignore指示 Git(基于扩展名) 的某些文件不应由 Git 处理。这些额外的文件会在后面的章节中进行更多的介绍。

图1 初始Git工作目录

当你创建一个 Git 仓库时,Git 会将这些文件( .gitattributes和 .gitignore)的默认版本添加到你的工作目录。你可以在现有的文件目录上创建一个 Git 仓库或是创建一个完全新的Git 仓库和工作目录。你还可以克隆现有的Git 仓库。一份克隆是一个完整的副本 (包括历史记录) 的Git 库。无论你怎么创建,现在都有了一个可以进行工作的Git库了。

克隆操作(Clone)

克隆是一个Git库的完整副本。例如,您可能会克隆了一份Git库,修复了一些 bug,然后向Git库提交代码。当然你需要对Git库具有写权限。

叉子操作(Fork)

叉子操作是从Git主库拷贝到你个人账户下的Git库,这样就不能直接对Git主库进行直接更新,而是先更新个人的副本,然后再提交一个拉请求(pull request),请求更改Git主库。这种功能经常用于开放源码项目,那里许多合作者帮助作者处理问题,但作者决定何时将它们包括在主分支。

拉请求(Pull Request)

拉请求是向Git库作者请求把你对叉来的Git库的更改合并到Git主库中。这个操作通常是由代码库合作者协助处理问题时使用。

分支(Branches)

一个分支是一套完整的库文件。Git 默认情况下将创建一个主分支。你可以创建更多的分支,在不会影响主分支的情况下,尝试更多的思路。

常见的分支可能包括︰

  • 功能分支(Feature branch)︰ 一支致力于向代码库中添加新功能
  • 发布分支(Release branch)︰ 用于计划下一个版本
  • 主分支(Master branch)︰ 所有代码最终获取都合并到主分支
  • 开发分支(Dev branch)︰ 活跃的开发分支,在代码正在工作

当然如何创建分支由你决定。然而如果很多合作者来参与项目,分支结构会令开发工作更加顺畅,并且不影响到主分支的构建,

第一章 Part 1/2 Git 一览的更多相关文章

  1. 第一章 Part 2/2 Git 一览

    被跟踪文件(Tracked files) 被跟踪文件是 Git 管理的工作目录 (存储库) 中的文件.当你添加新文件或使更新现有文件时,Git都会跟踪这些文件变化.在某个时间点,你将通过命令将这些文件 ...

  2. Git学习笔记 --第一章

    本系列学习笔记参考廖雪峰Git教程 安装Git Linux平台 Ubuntu/Debian命令:sudo apt-get install git 其他版本  Git官网下载源码,然后解压,依次输入:. ...

  3. 《LINUX内核设计与实现》读书笔记之第一章和第二章

    一.第一章 1. Unix内核的特点简洁:仅提供系统调用并有一个非常明确的设计目的抽象:几乎所有东西都被当做文件可移植性:使用C语言编写,使得其在各种硬件体系架构面前都具备令人惊异的移植能力进程:创建 ...

  4. .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9977862.html 写在前面 千呼万唤始出来,首先,请允许我长吸一口气!真没想到一份来自28岁老程序员 ...

  5. net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第一章 入门篇-开篇及总体规划

    .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划   原文地址:https://www.cnblogs.com/yilezhu/p/9977862.html 写在前面 千呼万唤始出来 ...

  6. 第一章 Android系统的编译和移植实例

    第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入 ...

  7. Linux内核分析 读书笔记 (第一章、第二章)

    第一章 Linux内核简介 1.1 Unix的历史 Unix很简洁,仅仅提供几百个系统调用并且有一个非常明确的设计目的. 在Unix中,所有东西都被当做文件,这种抽象使对数据和对设备的操作是通过一套相 ...

  8. Linux内核设计与实现 第一章 第二章

    第一章 Linux内核简介 Unix特点: (1)     Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2)     在Unix中,所有的东西都被当作文件对待,通过一套相 ...

  9. 20165233 Java第一章学习总结

    20165233 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 Java特点:语法简单.面向对象.与平台无关.动态. 字节码不能被任何平台直接识别. ...

随机推荐

  1. 简单说下COALESCE这个日常使用的函数

    COALESCE 作用是返回第一个非空的值. SELECT COALESCE(NULL,NULL,'A','CC') ---- A 原理的话其实也是相当于 case when A is not nul ...

  2. 树莓派 连接wifi与路由器ip绑定

    先推荐几个手机软件 在酷安网里应该能找到 1.JuiceSSH  橘子ssh软件  手机连上路由器 就可以控制局域网内的树莓派 2.VNC Viewer  远程桌面软件VNC 也是连接局域网的树莓派 ...

  3. Monthly Income Report – August 2016

    原文链接:https://marcoschwartz.com/monthly-income-report-august-2016/ Every month, I publish a report of ...

  4. 【Swift】Alamofile网络请求数据更新TableView的坑

    写这篇BLOG前,有些话不得不提一下,就仅当发发恼骚吧... 今天下午为了一个Alamofire取得数据而更新TableView的问题,查了一下午的百度(360也是见鬼的一样),竟然没有一个简单明了的 ...

  5. JS--浏览器兼容之new Date

    Js 中有一个Date属性. 我们可以通过new Date(formatString) 来生命日期. 不过生命日期里面有一个坑就是. new Date('2016-05-13'), Chrome 和 ...

  6. LAMP和LNMP

    编译安装和yum安装 centos 7 可以使用10年 ubuntu可以使用5年 VirtualBox也是一个虚拟机 下载centos 安装centos exit   退出登陆 ping www.ba ...

  7. Paxos

    Paxos算法原理与推导   Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上有很多讲解Paxos算法的文章,但是质量参差不 ...

  8. git 分支管理

    本地主分支提交到远程分支 git push origin master:branch-test 本地分支提交到远程主分支 git push origin branch-test:master 切换分支 ...

  9. 用vue.js学习es6(一):基本工具及配置

    一.工具: sublime,node.js,npm 1.安装sublime 的es6插件: (1).在sublime中按Ctrl+`调出console (2).粘贴以下代码到底部命令行并回车(subl ...

  10. .net core 源码解析-mvc route的注册,激活,调用流程(三)

    .net core mvc route的注册,激活,调用流程 mvc的入口是route,当前请求的url匹配到合适的route之后,mvc根据route所指定的controller和action激活c ...