git fork clone 区别_Working with Git | Git 与 GitHub
关于
各位好,这里是 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相关推荐
- git fork clone 区别_我的Git笔记
每次用到git,总会遇到一些问题,所以写这篇文章记录一下. fork 等fork完之后,你可以在自己的仓库中看到同名的项目,URL的形式:https://github.com/your_name/re ...
- Git clone 与 Git Fork 的不同(Difference between Git Clone and Git Fork)
Forking 与 Cloning 的主要区别 当你fork一个仓库的时候,你创建了一个原来仓库的副本,并且保留在你的GitHub账号里,但是clone是将仓库下载到本地. Forking is do ...
- git pull 和 git fecth 的区别
git pull 和 git fecth 的区别 平时在使用git的时候,更新代码习惯性的会去使用git pull命令.后来才注意到,git fetch的使用会是更加合理的,安全的. (以下部分内容参 ...
- git pull 与 git push 的区别
git push与git pull是一对推送/拉取分支的git命令. git push 使用本地的对应分支来更新对应的远程分支 $ git push <远程主机名> <本地分支名&g ...
- git fork的使用
背景 公司有2个app,名字就叫x,y,使用同一套后端(单体php应用,非微服务),因为2个app没啥区别,更多的是内容分类和前端的区别,当然数据也是互通的. 然而最近因为想实验一些东西在y上,但是怕 ...
- git fork操作
Git fork操作 文章目录 Git fork操作 一.背景 二.概念 1.与git clone的区别? 2.用法流程 三.实操 1. fork仓库 2. 分支创建与提交 一.背景 最近我在gith ...
- git init 与 git init --bare 区别
git init 与 git init --bare 区别 发现问题 最早是在公司的wiki上发现了这个命令,google后发现值得记录下来 实践中发现的区别 网上找了很多资料,但说的很乱,干脆在自己 ...
- Mercurial和Git有什么区别?
我一直在Windows上使用git一段时间(使用msysGit),我喜欢分布式源代码控制的想法. 就在最近,我一直在关注Mercurial(hg),它看起来很有趣. 但是,我无法解决hg和git之间的 ...
- gitlab git clone 卡住_IDEA中的Git操作你掌握了吗?此一篇,足矣!
Hello,大家好,我是Jerry.最近在公司上班,将公司Gitlab中的项目clone到本地,开发完成之后,需要进行代码提交,刚开始真是"丈二和尚摸不着头脑".但是经过一段时间的 ...
最新文章
- linux变量接收命令返回值,Linux Shell教程(一)
- 皮一皮:时代不同了...
- 树莓派3B 系统安装及初始化配置教程
- 关于源代码管理的10 个问题
- 老王学jsp之dom解析xml
- 使用PyCharm定义QQ变量
- HOG行人检测 如何制作样品
- 计算机基础及msoffice应用好考吗,全国计算机等级考试考试一级WPS Office和MS Office有什么不同?那个好考?...
- python提取html正文为txt,python 提取html文本的方法
- C# 依赖注入那些事儿
- JMeter——并发测试工具类安装及使用
- 数据结构-第十章 排序
- dll侧加载_动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)...
- Eclipse自动生成作者、日期注释等功能设置
- pyuic4和pyrcc4d的差别
- arcgis许可服务器怎么修改,【ARCGIS】修改ARCGIS许可文件有效期
- Qt网络编程、tcp通信、文件传输、程序打包和图标设置(QT五)
- 小米5s安装xpose 下
- html5毕业论文总结,毕业论文小结(精选多篇)
- 贪心算法——皇后游戏(洛谷P2123)
热门文章
- 前端学习:Vue.js基本使用
- Node.js -- Stream 使用小例 ( 流运用 :读取、写入、写出、拷贝)
- Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序
- Jquery 学习之基础一
- JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]...
- effective C++ 读后笔记
- php计算代码运行时间与内存使用的一段代码
- 数据结构之树的一些基本操作
- 再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化
- 如何写年终总结(转)