git fork clone 区别_Working with Git | Git 与 GitHub

0f11b75f77931909664f55e88af68de6.png

关于

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

5e0c050acb500a91ae5c397d123bd0db.png

为解决这些问题,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 等代码托管平台上,即在托管平台上建立起一个对应的远程仓库。

bc19ff9bcc3d24a2c3148156c270c56d.png

通过这些概念,我们不难发现 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 中国大陆许可协议进行许可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

舒适的路线(codevs 1001)

题目描述 DescriptionZ小镇是一个景色宜人的地方&#xff0c;吸引来自各地的观光客来此旅游观光。Z小镇附近共有N(1<N≤500)个景点&#xff08;编号为1,2,3,…,N&#xff09;&#xff0c;这些景点被M&#xff08;0<M≤5000&#xff09;条道路连接着&#xff0c;所有道路都…

PHP_Smarty

模板 数据与表现层的标签分离 smarty是PHP 与 HTML代码的分离 小型模板类 $smarty 的工作流程&#xff1a; 把需要显示的全局变量&#xff0c;赋值塞到对象内部的属性上&#xff0c;一个数组中.编译模板&#xff0c;把{$标签},解析成相应的<?php echo 代码引入编译后的PHP文…

读中文_挑战来了!康辉喊你读中文十级绕口令!

文章来源&#xff1a;央视频汉语桥木甬读桶不读涌&#xff0c;月农读脓不读胧。米更读粳不读梗&#xff0c;日青读晴不读睛。米宗读粽不读综&#xff0c;言丁读订不读钉。土竟读境不是镜&#xff0c;土平读坪不是评。耳令读聆不读岭&#xff0c;火登读灯不读澄。言甬读诵不读蛹…

ios 自定义键盘

由于项目需要&#xff0c;需要自定义键盘。ios系统键盘会缓存键盘输入&#xff0c;并保存在系统目录下的文件里&#xff0c;并且是明文存储&#xff0c;存在帐号密码泄漏风险。在别人代码基础上修改了下&#xff0c;美化了下界面&#xff0c;去掉了字符输入&#xff0c;加了点击…

对象入参指定泛型类型_为什么要使用泛型,而不是直接将类型作为参数传递?

其实很多类型系统都是用类型参数的的形式来实现Universal Type的&#xff0c;Parametric Polymorphism 和System F可以了解一下&#xff0c;如果只局限于一两个热门语言的话&#xff0c;可能会有此疑问&#xff0c;但是从type theory的角度来说&#xff0c;高阶类型本身就是typ…

【GOF23设计模式】迭代器模式

【GOF23设计模式】迭代器模式 来源&#xff1a;http://www.bjsxt.com/ 一、【GOF23设计模式】_迭代器模式、JDK内置迭代器、内部类迭代器 1 package com.test.iterator;2 /**3 * 自定义的迭代器接口4 */5 public interface MyIterator {6 void first(); //将游标指向第…

SQLServer 维护脚本分享(08)临时数据库(tempdb)

dbcc sqlperf(logspace) --各数据库日志大小及使用百分比dbcc loginfo --查看当前数据库的虚拟日志文件--临时表Tempdb最近使用情况 SELECT t1.session_id ,t1.internal_objects_alloc_page_count*8.0/1024 as internal_objects_alloc_MB ,t1.internal_objects_dealloc_p…

51单片机50个实例代码_【附代码】51单片机电子密码锁教程

简介大家好&#xff0c;这篇文章的内容是关于如何用51单片机来制作一个电子密码锁的教程&#xff0c;通过这篇教程可以让刚入门的朋友了解矩阵键盘、LCD1602的使用方法&#xff0c;以及密码输入和修改的程序介绍&#xff0c;我会对每个部分进行详细的介绍。首先我们来看一下这个…

旋转的正方体

<!DOCTYPE html><html lang"zh-cmn-Hans"><head><meta charset"utf-8" /><title>backface-visibility_CSS参考手册_web前端开发参考手册系列</title><meta name"author" content"Joy Du(飘零雾雨),…

8数据提供什么掩膜产品_博硕能为你提供什么产品?

自动喷漆设备应用于线条、木门、橱柜、楼梯、套房家具、办公家具、木饰面板、外墙保温装饰一体板板等产品领域&#xff0c;针对NC、PU、UV、水性漆和氟碳漆等不同种类的油漆&#xff0c;进行自动化喷涂和干燥作业。自动喷漆设备有多种规格型号&#xff0c;分为不同的喷涂方式。…

python3 实现对比conf 文件差异

用法&#xff1a; ./conf.py nginx1.conf nginx2.conf > diff.htmlconf.py#!/usr/bin/python import difflib import sys #### Usage: compare_nginx.conf.py filename1 filename2 >diff.html try:textfile1 sys.argv[1]textfile2 sys.argv[2] except Exception as…

mysql----innodb统计信息

对innodb 统计信息的控制可以通过如下几个常用的variables 来实现 1、innodb_stats_persistent&#xff1a; 这个参数控制着innodb的统计信息是否持久化到磁盘&#xff0c;先说明一下持久化到磁盘是什么意思&#xff1b;通常来说统计信息只保存在内存中&#xff0c;也就是说如果…

linux pid t 头文件_linux系统调用相关头文件

Linux C 一些函数 所属的头文件 2011-03-07 10:25:07分类&#xff1a; LINUX在编写程序时&#xff0c;有时总是不记得所使用的函数在哪个库函数中。现在先把自己以前经常用到的函数头文件总结一下。 有不对的地方还请指教。1&#xff0c;系统调用 文件的操作函数#inlclude &…

jsp页面验证码(完整实例)

项目结构如下&#xff0c;MyEclipse中新建一个Web Project&#xff0c;取名servlet 1、src下new一个servlet类 package com.servlet;import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOExcept…

开源oa_圈子哥推荐一款基于 Spring Boot 开发 OA 开源产品,学习/搞外快都是不二选择!...

点击上方蓝字关注「程序员的技术圈子」今天圈子哥给大家推荐一套Spring Boot 开发 OA系统&#xff0c;系统功能齐全&#xff0c;不管是用来学习或者搞外快都是不错的选择&#xff0c;clone下来吧&#xff01;办公自动化(OA)是面向组织的日常运作和管理&#xff0c;员工及管理者…

iOS网络编程实践--NSStream实现TCP Socket iPhone客户端

客户端我们使用iPhone应用程序&#xff0c;画面比较简单。点击发送按钮&#xff0c;给服务器发送一些字符串过去。点击接收按钮就会从服务器读取一些字符串&#xff0c;并且显示在画面上。 有关客户端应用的UI部分不再介绍了&#xff0c;我们直接看代码部分&#xff0c;Socket客…

Mocha 和 Chai 入门初探

转载自楼主个人博客 Mocha 和 Chai 入门初探Chai 在和 jest 作比较的时候, 两者主要的不同就是 jest 的集成度比较高内置断言库, 而 mocha 需要搭配额外的断言库, 在此选择了比较流行的 chai 作为断言库. 风格的选择 其中 chai 又有好几种断言风格, 我们经常见到的其实就是 BDD…

ios把数据传递到另一个页面_IOS 应用之间的跳转和数据传递详解

说明&#xff1a;本文介绍app如何打开另一个app,并且传递数据。一、简单说明新建两个应用&#xff0c;分别为应用A和应用B.实现要求:在appA的页面中点击对应的按钮&#xff0c;能够打开appB这个应用。1.新建两个应用&#xff0c;分别为A和B.142354418874108[1].png150002248248…

Libevent初探

Libevent 是一个用C语言编写的、轻量级的开源高性能网络库&#xff0c;主要有以下几个亮点&#xff1a;事件驱动&#xff08; event-driven&#xff09;&#xff0c;高性能;轻量级&#xff0c;专注于网络&#xff0c;不如 ACE 那么臃肿庞大&#xff1b;源代码相当精炼、易读&am…

ServerSocketChannel API用法

java.nio.channels 类 ServerSocketChannel java.lang.Objectjava.nio.channels.spi.AbstractInterruptibleChanneljava.nio.channels.SelectableChanneljava.nio.channels.spi.AbstractSelectableChanneljava.nio.channels.ServerSocketChannel所有已实现的接口&#xff1a; C…