`

(转)Git学习教程(一):git简介

    博客分类:
  • git
阅读更多

原文地址:http://fsjoy.blog.51cto.com/318484/244397

 Git学习教程(一):git简介


2009-12-16 13:24:52
 标签:git 学习 教程   [推送到技术圈

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fsjoy.blog.51cto.com/318484/244397
原文地址

第一课. git简介
内容:什么是git,为什么要使用git以及获取和学习git的途径。
 
 
欢迎来到github学习教程的第一课。本教程将通过一系列的实例来介绍如快速,轻松地使用Git。教程中会有很多屏幕截图,希望这样可以让你更好的学习和理解。
本节简要介绍git的概念和为什么应该使用它

 
git是一个快速,开源,分布式的版本控制系统。因此,它在(开源)和(协作编程社区)很快取代了svn。

版本控制系统 
首先,git是一个版本控制系统,用来保留工程源代码历史状态的命令行工具。类似于SVN,CVS或者Perforce等工具。

当你需要得到以前的一个保存点时,你可以利用它来追踪项目中的文件,并且得到某些时间点提交的项目状态。你可以和合作伙伴共享这些历史状态,将他们的工作和你的工作进行合并,可以对整个工程或某些文件跟历史版本进行比较或者恢复到早期的某个版本。

因为git根本上说是一个命令行工具,所以本教程中的大部分示例都会用命令行的方式给出。教程中使用现行git版本(1.6系列)编写示例。如果使用早期版本的话,我们也建议您升级到1.6系列。当然,现在已经有很多git UI的工具,使得git变得更加简单易用。

git的安装:
下载地址
http://www.kernel.org/pub/software/scm/git/ 
安装过程:

1.$ tar xzvf git-1.6.5

2.$ cd git-1.6.5

3.$ ./config --prefix=/usr/local

4.$ make

5.$ sudo make install

6.$ git --version

如果需要命令帮助的话,可以键入'-help'就会显示出
操作手册。你也可以键入'git help command'实现同样的目的。

$ git log --help
$ git help log

开源 
git是一个开源项目,有很多年的历史了,它的大部分内容都是用C来写的。
你可以得到整个项目的源代码,加以分析和改进。下载源程序的地址:git-scm.com/download。git许可证:GNU通用公共许可证(GNU General Public License)
离线,速度快
   git是完全的分布式处理,这意味着它可以离线工作。跟VCS工具例如Perforce或者SVN完全不同,Git的所有操作几乎不需要网络连接,包括历史回顾,差异显示和提交。

这也意味着Git比其他的VCS工具要快很多,因为某些VCS工具对网络的依赖会导致时间上的延迟。下面来看看'log'命令分别运行在git和SVN上的结果:

[master]$ time git log > /dev/null

real 0m0.352s
user 0m0.300s
sys 0m0.034s 

$ time svn log > /dev/null

real 0m3.709s
user 0m0.482s
sys 0m0.168s

git仅用了0.3秒而SVN用了3.7秒。你会发现几乎所有的命令都有这样的时间差异。例如,添加知名的famfamfam出品的图标集并提交,因为使用git可以将【提交(commit)】和【上传('push')网络】这两个步骤分开,其中【提交(commit)】git只用1/4秒,而SVN会用到45秒。
time 'git add icons; git commit -m "added icons"'

real 0m0.273s
user 0m0.032s
sys 0m0.008s

time 'svn add icons; svn commit -m "added icons"'

real 0m45.276s
user 0m15.997s
sys 0m5.503s

即使是再加上用git 提交(commit)之后再上传(push)到网络共享仓库中的时间,也比SVN的耗时要少的多的多。
time git push

real 0m6.219s
user 0m0.023s
sys 0m0.011s

如果你仅仅是想提交然后继续工作,你就会感觉到时间上的巨大差异--因为git的工作流程跟以前的版本控制系统不大一样。git的命令大部分都是即时的,不像以前,执行'svn commit'命令之后,可以喝杯咖啡再回来继续工作。

比svn更小
git比较节省空间。举例来说,一个Django项目如果使用现行的源代码控制系统(source control systems)来实现版本控制的话,git克隆(clone)是最小的。
$ du -d 1 -h
108M ./django-bzr
 44M ./django-git
 53M ./django-hg
 53M ./django-svn

更神奇的是,虽然git克隆比SVN要小很多,但是git克隆包含整个项目的历史版本---从第一次提交之后的每一个文件的每一次提交的版本都囊括了。然而,SVN只包含项目的最后一个版本。

快照,而不是变更集

跟其他的VCS工具不同,git是基于快照的。不再是考虑将提交点存储成补丁文件,而是在你提交项目的时候对项目做一个简单的快照。

提交的东西包含一些元数据(提交信息(message),作者,日期等等),一个提交点指向这次提交时项目的快照。

记住这个图对于给定情形下使用Git是非常有帮助的。
如果要了解更深层次的Git存储数据的只是,可以访问Git for computer scientists
分支和合并
也许git最显著的一个特点就是它的分枝模型了,因为它改变了开发者工作的基本模式。以前的VCS工具分枝的方法是对每一个分枝都放到一个独立的目录中。而git可以让你在同一个工作目录中切换(switch)到不同的分枝。创建和切换分枝几乎是即时的(instant),而且并不是所有的分枝都需要上传到git仓库中去共享,对于某些你更愿意隐藏在本地的工作来说,git无疑提供了很大的便利。从这点上来说,git确是有其独到之处。
摒弃了CVS只对项目开发主线创建分枝的做法,git开发者可以随时创建,合并,删除多个分枝。通常对于实现某个功能或者每个debug阶段,都可以创建它的分枝,当完成之后再将其进行合并。这种模式可以让开发者体验更加快速,简便,安全的方式来开发项目。它鼓励一种非线性的开发周期,它可以说是并行的多线程模式而不是多个步骤串行的模式。
安装git
参见git community book中对于git安装在不同操作系统中的说明。
资源
关于git的更多信息,可以参考git-scm.com

分享到:
评论

相关推荐

    Git使用教程

    一、Git 简介 * Git 是什么?Git 是目前世界上最先进的分布式版本控制系统。 * Git 的特点:高端大气上档次! 二、版本控制系统 * 版本控制系统的作用:记录每次文件的改动,避免文件混乱和丢失。 * 版本控制系统...

    Git权威指南 (git学习权威书籍)

    Git是分布式版本控制系统的一种,由Linus Torvalds在2005年为Linux内核开发而创建。它被广泛用于软件开发,特别是在开源社区,因其高效、灵活和强大的特性而备受推崇。Git允许开发者追踪代码的历史变化,协同工作,...

    git培训教程 .docx

    2. 安装 Git:打开下载的安装包,按照提示安装,全部下一步即可。 3. 配置 Git:右键点击要下载项目的目录,输入用户名和邮箱,使用以下命令: ``` git config --global user.name "songanwei" git config --global ...

    git-gateway:Git API的网关

    使用JAMstack方法构建站点时,一种常见的模式是将所有内容作为结构化数据存储在Git存储库中,而不是依赖于外部数据库。 Netlify CMS是一个开放源代码的内容管理UI,它允许内容编辑器通过熟悉的内容编辑界面在Git中...

    git的详细使用教程.pdf

    ### Git的详细使用教程 #### 一、基础概念 **Git仓库**:是Git的核心组成部分之一,用于存储项目的提交记录及版本历史。每个Git仓库都包含一个完整的项目历史记录,这意味着即使是在不同的计算机上,只要拥有仓库...

    git工具的使用:学习笔记

    git工具的使用:学习笔记

    git 视频教程

    git视频教程.1.Git 命令 - git help、git config.mp4 git视频教程.2.Git 命令 - git init、git clone.mp4 git视频教程.3.1.Git 命令 - git add、git status.mp4 git视频教程.3.2.Git 命令 - git diff、git difftool....

    Git教程by廖雪峰.pdf

    因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助...

    git和svn学习入门教程

    SVN是一种集中式的版本控制系统,与Git相比,其主要特点包括: 1. 集中式:所有版本信息都存储在一个中央服务器上,开发者需要连接到服务器才能进行版本控制操作。 2. 简单的分支和合并:相较于Git,SVN的分支和...

    progit.pdf--git学习教程

    《ProGit.pdf--git学习教程》是Scott Chacon和Ben Straub共同编写的关于Git版本控制系统的官方学习指南。本教程涵盖了Git的基本概念、工作流程、配置、分支管理、远程仓库操作、服务器部署、分布式工作模式、GitHub...

    微信小程序学习用demo:git-book(源代码+截图)

    微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-...

    git菜鸟教程.pdf

    这是一份面向初学者的Git教程,用通俗易懂的语言讲解了Git的基本概念与使用方法。 标签:git gitlab 知识点: 1. 版本控制系统:文章开始提到版本控制系统的重要性,特别强调了在协作开发大型项目时,使用版本...

    《玩转Git三剑客》.zip

    《玩转Git三剑客》是一本专注于Git版本控制系统的学习资料,它可能包含了关于Git的深入理解和实践操作的全面教程。Git是目前最流行的分布式版本控制系统,被广泛应用于软件开发和协作环境中,对于强化学习这样的技术...

    Git中文学习文档

    "Git中文学习文档" 本资源提供了 Git 中文学习文档,旨在帮助用户快速入门 Git,并了解 Git 的使用和版本控制的重要性。文档从版本控制的历史背景开始,介绍了版本控制的定义和重要性,然后逐步引入 Git 的安装和...

    Git教程:git相关基础概念教程,简单易懂

    Git教程:Git是分布式版本控制系统,它允许开发者追踪和管理代码变更,对于团队协作和项目管理至关重要。在本教程中,我们将深入理解Git的基础概念,包括仓库、分支、提交、合并以及远程仓库等核心概念。 1. **Git...

    最完整的git教程.zip

    - 安装Git:在不同的操作系统(Windows、macOS、Linux)上安装Git的方法。 - 配置环境:设置用户名和邮箱,以及自定义Git命令行的显示风格。 - 创建仓库:初始化本地仓库,理解.git目录的作用。 - 获取仓库:...

    新手小白的git使用的手册入门学习demo

    Git 是一个分布式版本控制系统,用于跟踪和管理代码更改。 常见的命令如下: 初始化仓库:git init 克隆仓库:git clone 查看状态:git status 添加文件:git add 提交更改:git commit -m "Commit message" 推送...

    git官方教程(中文版和英文版)

    1. 类型: 文字版pdf,代码和内容可直接复制,非图片扫描版。 2. 简介: 这是官方git教程,资源压缩包里自带中文版和...3. 内容: 这是初学者学习git的最好教程,主要讲解了git的原理,以及git命令的使用。非常地amazing!

    Git 原理与使用.pdf

    * 安装Git:sudo apt-get install git -y Windows安装Git: * 参考链接:https://www.bilibili.com/video/BV1hf4y1W7yT?p=3&vd_source=b57c3f3e8a7507d4af7322c28f05fdbc Git基本操作: * 创建Git本地仓库 * ...

Global site tag (gtag.js) - Google Analytics