最近Github很火,暑期的时候也注册了一个账号,可是其实一直没用。主要呢,是不知道那到底干什么用。现在要照着自己的学习记录一个像我这种完全零基础的人的入门教程。

首先,让我们先知道GitHub到底是啥?

GitHub 是一个用于使用Git版本控制系统项目的共享虚拟主机服务。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

我想很多零基础的同学看了上面那个wiki说明,基本可以说是没看明白。下面是其主页:

关于版本控制

那么下一步,我们要做的就是了解——什么是版本控制

所谓版本控制是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程式档案都得到同步。

软件设计师常会利用版本控制来追踪、维护源码、文件以及设定档等等的改动,并且提供控制这些改动控制权的程序。
在最简单的情况下,软件设计师可以自己保留一个程式的许多不同版本,并且为它们做适当的编号。这种简单的方法已被用在很多大型的软件项目中。该方法虽然可行,但不够有效率。除了必须同时维护很多几乎一样的源码备份外;而且极度依赖软件设计师的自我修养与开发纪律,但这却常是导致错误发生的原因。有时候,一个程式同时存有两个以上的版本也有其必要性,例如:在一个为了部署的版本中程式错误已经被修正、但没有加入新功能;在另一个开发版本则有新的功能正在开发、也有新的错误待解决,这使得同时间需要不同的版本并修改。此外,为了找出只存在于某一特定版本中(为了修正了某些问题、或新加功能所导致)的程式错误、或找出程式错误出现的版本,软件除错者也必须借由比对不同版本的程式码以找出问题的位置。
Git版本控制方法
2000年后,TeamWare、BitKeeper、和GNU开始用分散式系统:开发者直接在各自的本地档案库工作,并容许多个开发者同时更动同一档案,而各个档案库有另一个合并各个改变的功能。这个方式让开发者能不靠网络也能继续工作,也让开发者有充分的版本控制能力,而不需经中央权威许可。分散式系统仍然可以有档案上锁功能。分散式系统Linux内核的发明人林纳斯·托瓦兹就是分散式版本控制系统的支持者,他开发了目前被开源社群广泛使用的分散式版本控制系统Git。
档案上锁
档案上锁功能能对高难度的合并(例如大幅更改大档案或档案群的许多部份)提供一些保护,但其他开发者仍然可以绕过版本控制系统改变档案(这本身就是很大的问题)。所以档案上锁功能带来的功效与副作用一直饱受争议。
术语

基线(Baseline):基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础。

档案库(Repository):存储档案的新版本还有历史资料的地方,通常是在服务器上。有时候也叫Depot(像是在SVK、AccuRev还有Perforce中)

工作版本(Working copy):从档案库中取出一个本地端(客户端)的复制,针对一个特定的时间或是版本。所有在档案库中的档案更动,都是从一个工作版本中修改而来的,这也是这名称的由来。观念上,这是一个沙盒。

提交(Commit):将本地端的修改送回档案库。(由版本控制软件处理“跟上次更动相比,哪个档案又被更动”的事)

变更(Change):对一份文件作的特定更动。

取出(Check-Out):从档案库取出档案到本地端(客户端)。

更新(Update):将档案库的修改送到本地端(与提交相反)

合并(Merge / Integration):合并各个改变。

版次(Revision):一个revision或version指的是一系列版本变迁的其中之一。

冲突(Conflict):当两方更动同一份文件会发生冲突。

关于Git

再大概知道了版本控制是什么后,下面来了解一下Git是什么:

Git是一个分布式版本控制/软件配置管理软件,原来是linux内核开发者林纳斯·托瓦兹为了更好地管理linux内核开发而创立的。需要注意的是和GNU Interactive Tools,一个类似Norton Commander界面的文件管理器有所不同。Git最初的开发动力来自于BitKeeper和Monotone。Git最初只是作为一个可以被其他前端比如Cogito或StGIT[6]包装的后端而开发的。不过,后来Git内核已经成熟到可以独立地用作版本控制。很多有名的软件都使用Git来进行版本控制,其中有Linux内核、X.Org服务器和OLPC内核开发。

主要功能
Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并追踪(merge tracing)能力
实际上内核开发团队决定开始开发和使用Git来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是Git太艰涩难懂,从Git的内部工作机制来说,的确是这样。但是随着开发的深入,Git的正常使用都由一些友善的命令稿来执行,使Git变得非常好用。现在,越来越多的著名项目采用Git来管理项目开发,例如:wine、U-boot等。
作为开源自由原教旨主义项目,Git没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis, CodeBeamer MR。原本Git的使用范围只适用于Linux / Unix平台,但在Windows平台下的使用也逐渐成熟,这主要归功于Cygwin、msysgit环境与TortoiseGit这样易用的GUI工具。其实Git的源代码中已经加入了对Cygwin与MinGW编译环境的支援,且逐渐完善,为Windows使用者带来福音。
早期历史
早期Linux的开发人员是使用BitKeeper来管理版本控制和维护程式码。2005年的时候,开发BitKeeper的公司同Linux内核开源社区结束合作关系,并收回使用BitKeeper的权利。Torvalds开始着手开发Git来替代BitKeeper。
实现原理
Git和其他版本控制系统(如CVS)有不少的差别,Git本身关心档案的整体性是否有改变,但多数的CVS,或Subversion系统则在乎档案内容的差异。因此Git更像一个档案系统,直接在本机上取得资料,不必连线到host端取资料回来。
库结构
 hooks:存储钩子的文件夹
 logs:存储日志的文件夹
 refs:存储指向各个分支的指针(SHA-1标识)文件
 objects:存放git对象
 config:存放各种设置文档
 HEAD:指向当前所在分支的指针文件路径,一般指向refs下的某文件
移植性
在Windows平台上有msysgit与TortoiseGit可资利用。TortoiseGit还提供有GUI。

现在git也提供windows版本下载。http://git-scm.com/download

如果你想了解更多的内容,下面可以猛击下图:

当你看完了上面的资料后,应该对Git有了初步的了解,那么接下来就开始下载

Git(Windows)下载

安装界面如下所示:

安装完成后,开始对Git进行设置:

1、点击Git Bash

2、在git中输入username 和email

$ git config --global user.name "Your name"
$ git config --global user.email "your_email@example.com"

好了,现在git的部分已经完成了第一步。

git还有一个很棒的入门教程

关于GitHub

在了解了git之后,咱们开始进入github领域。

首先,你需要注册一个github账号;

然后,咱们开始创建一个仓库(Create A Repo)

原本我还想写,但是,关于github最好的教程是官方入门教程。

git的一些常用命令

1.创建项目  mkdir djangoproject

2.进入项目目录  cd djangoproject

3.初始化项目  git init

4.添加readme文件  touch README

5.把文件加入git管理  git add README

6.第一次提交  git commit -m ''first commit'

7.设置项目提交路径  git remote add origin git@github.com:username/user.git

8.提交到github  git push -u origin master

生成自己的SSH keys

1.进入.ssh目录  cd ~/ssh

2.生成ssh key  $ssh-keygen -t rsa -C "your_email@youremail.com"  Generating public/private rsa key pair.  Enter file in which to save the key (/home/neil/.ssh/id_rsa): 回车  Enter passphrase (empty for no passphrase): 输入密码  Enter same passphrase again: 再次输入密码  3.把自己的key加入项目  进入到要提交项目目录,并运行:  ssh-add ~/.ssh/id_rsa

零基础GitHub入门教程相关推荐

  1. 取得数组下标_《零基础C++入门教程》——(8)搞定二维数组与循环嵌套

    一.学习目标 了解二维数组的使用方法 了解循环嵌套的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:<零基础看得懂的C语言入门教程>--(二) ...

  2. sql数据库教程百度云_【推荐】零基础水彩画入门教程|零基础水彩教程百度云...

    零基础水彩画入门教程|零基础水彩教程百度云! 照着教程画却总是画不好,这些水彩技法你真的学会了吗? 盲目地照着葫芦画瓢,不懂控制确实很难学会,可以关注一下公众号:每日学绘画,可以领取水彩电子书和全套视 ...

  3. 零基础CSS入门教程(1)–初识CSS

    点此查看 所有教程.项目.源码导航 本文目录 1. 前言 2. HTML与CSS区别 3. CSS有哪些功能 4. 如何学习CSS 1. 前言 学习CSS是离不开HTML的,HTML是CSS的基础,如 ...

  4. 【PR】零基础快速入门教程

    [PR]零基础快速入门教程 PR(Premiere)能做什么? PR欢迎界面及新建项目 工作区及窗口说明 导入文件 建立序列 视频剪辑 添加字幕 导出视频 使用软件:Premiere2020 新年卷起 ...

  5. 零基础JavaScript入门教程(1)–走进JavaScript的世界

    点此查看 所有教程.项目.源码导航 本文目录 1. 前言 2. JS的历史 3. JS的地位 4. JS与HTML.CSS的区别 5. JS是真正的编程语言 6. JS的组成部分 7. 小结 1. 前 ...

  6. 零基础Bootstrap入门教程(0)--教程背景与目录

    点此查看 所有教程.项目.源码导航 本文目录 1. 背景 2. 教程目录 3. 源码下载 1. 背景 在学习完成HTML/CSS/JS/jQuery零基础入门教程后,自然而然我们要进入Bootstra ...

  7. 零基础SSM入门教程(0)--教程背景与目录

    点此查看 零基础JavaWeb全栈文章目录及源码下载 1. 背景 本教程的出发点是写一个比较条理,比较全面的SSM系列教程,首先造福自己.理顺自己的知识体系,然后也造福大众,因为网上现存的资源相对比较 ...

  8. 大数据零基础如何入门教程

    程序员必看大数据教程最全1024G学习资料免费赠送详解,大数据工作者可以施展拳脚的领域非常广泛,从国防部.互联网创业公司到金融机构,到处需要大数据项目来做创新驱动.数据分析或数据处理的岗位报酬也非常丰 ...

  9. Processing零基础傻瓜入门教程-下载与安装与主界面简介

    某绿(笔者)作为一名设计系的学生,其中一门课便要用到此软件,于是,一问三不知的某绿就开始了漫长的processing之路. 此软件的简介以及用途某绿在此文章中不提及,想必想要使用的你已经初步了解过.( ...

最新文章

  1. 【瞎扯】我的OI之路
  2. codeigniter mysql error_CodeIgniter:无法使用提供的设置错误消息连接到数据库服务器...
  3. json api_JSON模式在构建和部署API中的作用
  4. [人工智能]手语识别转文字落地深圳医院,厉害了我的腾讯
  5. 中国松紧带市场趋势报告、技术动态创新及市场预测
  6. Mac系统 python3.7安装
  7. ubuntu 创建Fdfs文件服务器
  8. s081-2020 Lab4 traps
  9. mapminmax 用法
  10. 《构建之法》CH5~6读书笔记 PB16110698 第九周(~5.15)
  11. Excel实用教程-IF函数怎么用
  12. HIbernate关联映射小案例(CRUD)
  13. 证明集合包含关系的5种方法
  14. 工信部下令5G降价,三大运营商开启5G流量价格战
  15. 融入动画技术的交互应用优秀作业推荐
  16. 华清远见重庆分中心——前端阶段技术个人总结
  17. discuz X3.2最新20141225安装包uc_server不能登陆问题(包括升级后)
  18. 小目标检测模型总结+SNIP+SNIPER
  19. 差分运算放大电路原理解析
  20. 一个利用拼音与汉字混合过滤字符串的函数

热门文章

  1. Switch模拟器调研
  2. WPA3功能开发及验证
  3. ∘(空心的点乘)的数学含义
  4. MIUI13来了,米粉们还期待吗?
  5. 1002. 写出这个数 (20)练习
  6. 10行代码,带你理解自然底数e、自然指数ln
  7. 寒武纪MLU270安装运行Pytorch yolov3实录
  8. 华为Mate40 Pro 66w充电器冒火花怎么回事?
  9. Striped64 api详解
  10. [问题解决]电脑有线 连接天翼光猫 不分配ip 电脑有线无法上网