关于

各位好,这里是 China's Prices Project 项目的知乎专栏。关于 CPP 项目,您可以在这篇文章里了解到更多的信息。若您对这个项目感兴趣,我们非常欢迎您与我们交流您的想法与见解。

在一个团队的成员同时为一个项目进行开发工作时,为了对整个项目涉及到的代码进行统一的管理,方便文件存取、协同开发、状态回滚、历史版本记录等操作的进行,版本控制系统(Version Control System) 应运而生,诸如 VSS、CVS、SVN、Git 等都是 VCS 的典型代表。而当下最为流行并得到广泛应用的版本控制系统,正是 Git 。

“Working with Git”系列文章将向各位粗浅介绍 Git 与 GitHub 的有关概念与实际应用。文章将以介绍基于 Git 的版本管理思想与 GitHub 的有关功能为主,重点不会放在 Git 的命令行代码上。因个人的水平能力与经验都非常有限,若有错漏还望批评指正。

Git 与 GitHub 中的基本概念

前面提到,Git 是一个免费、开源、分布式的对项目代码的提供版本管理功能的软件,而 GitHub 则是一个基于 Git 提供代码托管服务的网络平台。

Git 的分布式体现在其“去中心化”的特点。以往,SVN 之类的版本控制系统存在一个“中心服务器”,其使用者需要从服务器“取回”一个代码的最新版本,在完成自己的修改后再“提交”到中心服务器上让自己的代码成为新的版本,这种结构有一些明显的缺点:一是要求使用者在获取代码与提交更改时必须连接到服务器;二是当使用者人数过多时服务器压力会明显变大,在处理冲突时(例如几位使用者对一段代码的同一个地方做了不同的更改)也会出现很大困难。

为解决这些问题,Git 中引入了新的代码管理机制。我们先来了解 Git 中的基本概念与操作:

Repository (仓库): 一个项目的所有代码存放在同一个仓库 (Repo) 中。仓库有本地仓库 (Local) 与远程仓库 (Remote) 的区别。如果你使用 GitHub ,那么你的远程仓库便托管在 GitHub 上。Commit (提交): 当你在本地库完成了一些修改后,将所有修改内容提交到缓存区。你可以为每个 Commit 加上一个标题并写明这次修改的主要内容。Push (推送): 当本地仓库缓冲区有未同步的 Commit 时,即本地仓库代码版本新于远程仓库,Push可以将这些 Commit 推送到远程仓库。Pull/Fetch (拉取): 当远程仓库代码版本新于本地仓库时,Pull/Fetch 操作可以使本地仓库更新到远程仓库的版本。两者间的区别我们会在下一篇文章中介绍。Sync (同步): 同步远程仓库版本与本地仓库版本。Fork/Clone/Publish (复制/克隆/发布): Fork 操作将一个他人的远程仓库复制到自己的远程仓库中; Clone 操作将一个他人的远程仓库复制到自己的本地仓库中;Publish 操作将自己的本地仓库发布到 GitHub 等代码托管平台上,即在托管平台上建立起一个对应的远程仓库。

通过这些概念,我们不难发现 Git 中不存在类似 SVN 之类的“中心服务器”,每位用户都可以通过 Fork/Clone 操作获得一个可以自行更改的代码仓库,这在一定程度上解决了集中式代码管理带来的问题。然而真正凸显 Git 强大功能的,是 Git 中“工作流”的有关概念。

我们将在下篇文章中具体讨论工作流的有关内容。

成稿匆忙,且当抛砖引玉,多有感谢~XD

=========================

更多项目介绍,请关注我们的项目专栏:China's Prices Project - 知乎专栏

项目联系方式:

  • 项目邮箱:zhangguocpp@163.com
  • 知乎:@iGuo@Suri(项目负责人) @林行健@Dementia (技术负责人)@张土不 (财务负责人) @好大一棵树(运维负责人)

文章中图片来源于:Getting Git Right - Atlassian Git Tutorial
在 Creative Commons Attribution 2.5 Australia License 下使用。
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。

git fork clone 区别_Working with Git | Git 与 GitHub相关推荐

  1. git fork clone 区别_我的Git笔记

    每次用到git,总会遇到一些问题,所以写这篇文章记录一下. fork 等fork完之后,你可以在自己的仓库中看到同名的项目,URL的形式:https://github.com/your_name/re ...

  2. Git clone 与 Git Fork 的不同(Difference between Git Clone and Git Fork)

    Forking 与 Cloning 的主要区别 当你fork一个仓库的时候,你创建了一个原来仓库的副本,并且保留在你的GitHub账号里,但是clone是将仓库下载到本地. Forking is do ...

  3. git pull 和 git fecth 的区别

    git pull 和 git fecth 的区别 平时在使用git的时候,更新代码习惯性的会去使用git pull命令.后来才注意到,git fetch的使用会是更加合理的,安全的. (以下部分内容参 ...

  4. git pull 与 git push 的区别

    git push与git pull是一对推送/拉取分支的git命令. git push 使用本地的对应分支来更新对应的远程分支 $ git push <远程主机名> <本地分支名&g ...

  5. git fork的使用

    背景 公司有2个app,名字就叫x,y,使用同一套后端(单体php应用,非微服务),因为2个app没啥区别,更多的是内容分类和前端的区别,当然数据也是互通的. 然而最近因为想实验一些东西在y上,但是怕 ...

  6. git fork操作

    Git fork操作 文章目录 Git fork操作 一.背景 二.概念 1.与git clone的区别? 2.用法流程 三.实操 1. fork仓库 2. 分支创建与提交 一.背景 最近我在gith ...

  7. git init 与 git init --bare 区别

    git init 与 git init --bare 区别 发现问题 最早是在公司的wiki上发现了这个命令,google后发现值得记录下来 实践中发现的区别 网上找了很多资料,但说的很乱,干脆在自己 ...

  8. Mercurial和Git有什么区别?

    我一直在Windows上使用git一段时间(使用msysGit),我喜欢分布式源代码控制的想法. 就在最近,我一直在关注Mercurial(hg),它看起来很有趣. 但是,我无法解决hg和git之间的 ...

  9. gitlab git clone 卡住_IDEA中的Git操作你掌握了吗?此一篇,足矣!

    Hello,大家好,我是Jerry.最近在公司上班,将公司Gitlab中的项目clone到本地,开发完成之后,需要进行代码提交,刚开始真是"丈二和尚摸不着头脑".但是经过一段时间的 ...

最新文章

  1. linux变量接收命令返回值,Linux Shell教程(一)
  2. 皮一皮:时代不同了...
  3. 树莓派3B 系统安装及初始化配置教程
  4. 关于源代码管理的10 个问题
  5. 老王学jsp之dom解析xml
  6. 使用PyCharm定义QQ变量
  7. HOG行人检测 如何制作样品
  8. 计算机基础及msoffice应用好考吗,全国计算机等级考试考试一级WPS Office和MS Office有什么不同?那个好考?...
  9. python提取html正文为txt,python 提取html文本的方法
  10. C# 依赖注入那些事儿
  11. JMeter——并发测试工具类安装及使用
  12. 数据结构-第十章 排序
  13. dll侧加载_动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)...
  14. Eclipse自动生成作者、日期注释等功能设置
  15. pyuic4和pyrcc4d的差别
  16. arcgis许可服务器怎么修改,【ARCGIS】修改ARCGIS许可文件有效期
  17. Qt网络编程、tcp通信、文件传输、程序打包和图标设置(QT五)
  18. 小米5s安装xpose 下
  19. html5毕业论文总结,毕业论文小结(精选多篇)
  20. 贪心算法——皇后游戏(洛谷P2123)

热门文章

  1. 前端学习:Vue.js基本使用
  2. Node.js -- Stream 使用小例 ( 流运用 :读取、写入、写出、拷贝)
  3. Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序
  4. Jquery 学习之基础一
  5. JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]...
  6. effective C++ 读后笔记
  7. php计算代码运行时间与内存使用的一段代码
  8. 数据结构之树的一些基本操作
  9. 再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化
  10. 如何写年终总结(转)