Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture-III-github使用 整理:许光全 计算机科学与技术学院

Similar presentations


Presentation on theme: "Lecture-III-github使用 整理:许光全 计算机科学与技术学院"— Presentation transcript:

1 Lecture-III-github使用 整理:许光全 计算机科学与技术学院
开源技术及应用 Lecture-III-github使用 整理:许光全 计算机科学与技术学院

2 内容 Git&GitHub是什么?有什么用? 如何使用github?

3 版本控制 集中式版本控制系统:版本库是集中存放在中央服务器的,如从图书馆借书出来修改…… 最大缺点:需要联网。
CVS、SVN、ClearCase(收费,IBM)、MS VSS(Visual Source Safe,集成在VS中)。

4 版本控制 分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库。
优点:工作时不用联网,强大的分支管理,安全性要高很多。 产品:Git,BitKeeper,Mercurial和Bazaar等, 各有特点,但最快、最简单也最流行的依然是Git!

5 Git 是什么:Git是目前世界上最先进的分布式版本控制系统(没有之一)。最初由Linus Torvalds编写(C语言),用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。 特点:高端大气上档次!问:用WS word编辑文档有什么局限?修订模式?

6 Git 如果—— 能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便? 版本 用户 说明 日期 1 张三 删除了软件服务条款5 7/12 10:38 2 增加了License人数限制 7/12 18:09 3 李四 财务部门调整了合同金额 7/13 9:51 4 延长了免费升级周期 7/14 15:17

7 Git 发展历史: 在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码! 到了2002年,代码库之大让Linus很难继续通过手工方式管理了,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。 2005年,开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。 之后,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。 2008年GitHub上线: Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。 在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

8 GitHub github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。
Octocat=Octopus(章鱼)+ Cat(猫) github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。 成立于2008年 。基于Git,提供协作式代码版本控制服务。 总部在旧金山,员工238人。 创始人:5人骨干小组: Scott Chacon:GithubGit布道师,Pro Git作者等。 Tekkub:客户关系。 Melissa Severini:行政。 Kyle Neath:设计。 Ryan Tomayko:开发。 开源代码库以及版本控制系统,Github目前拥有400多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。

9 GitHub 代码玩家的“MySpace”: GitHub可以托管各种git库,并提供一个web界面;
分支简易:与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单: 首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。

10 事件报道 2013年1月15日晚间,全球最大的社交编程及代码托管网站GitHub突然疑似遭遇DDOS攻击,访问大幅放缓,该网站管理员经过日志查询,发现是来自12306的抢票插件用户洪水般的访问导致GitHub出现问题。 2013年1月20日左右,GitHub在中国大陆被官方的防火长城封锁(封锁手段为域名污染和关键词过滤),李开复等一些微博大号呼吁解禁GitHub,微博转发近10万条。2013年1月23日github网站恢复正常访问。 2014年1月23日联合创始人汤姆·普雷斯顿-维尔纳(Tom Preston-Werner)将从另一位联合创始人克里斯·万斯特拉斯(Chris Wanstrath)手中接过总裁职位,后者也将接过普雷斯顿-维尔纳留下的CEO位

11

12 github和git是什么关系 git是一种版本控制系统。跟svn、cvs是同级的概念。
github是一个网站: github.com ,给用户提供git服务。这样你就不用自己部署git系统,直接用注册个账号,用他们提供的git服务就可以。

13 开始使用GitHub 版本选择:for Linux,mac,windows 步骤: 注册账户以及创建仓库

14 GitHub Guides

15 创建仓库

16

17 使用GitHub 安装客户端msysGit 官方中文版下载(Git for Windows):提供了Git的核心功能!该版本提供了GUI!

18 使用GitHub 创建新的版本库

19 检出仓库-本地克隆? 执行如下命令以创建一个本地仓库的克隆版本: git clone /path/to/repository 

20 检出仓库-远程克隆 如果是远端服务器上的仓库,你的命令会是这个样子: git clone url,右下角

21 远程同步 打开终端; 将目录切换到克隆目录: 查看远程库的配置 同步 cd your_listed_directory cd ..
git remote -v # origin (fetch) # origin (push) 同步 git remote add upstream URL

22 No SQL:非关系型数据库,致力于非结构化数据存储,如Google的 BigTable 和Amazon 的Dynamo。此外,Riak是主流NoSQL数据库之一,采用key-value存储模式。

23 GUI克隆 事实上,Git GUI很好用:

24 还可以创建一个新的文件夹,右键 Git Init Here

25 为了把本地的仓库传到github,还需要配置ssh key。
$ ssh-keygen -t rsa -C

26 回到github,进入右上角Settings,左边选择SSH Keys,Add SSH Key, title随便填,粘贴key:

27 验证是否成功 $ ssh -T 这就表示已成功连上github。

28 本地仓库传到github上去 设置username和email
$ git config --global user.name “ganjuehuifang" $ git config --global user. 进入要上传的仓库,右键git bash,添加远程地址: $ git remote add origin

29 提交、上传 提交、上传 在本地仓库里添加一些文件,比如README, $ git add README, 工作目录-〉暂存区(Index)
$ git commit -m “first commit“,暂存区-〉HEAD 上传到github: $ git push origin master,HEAD-〉远端仓库, master可以换成想要的分支 git push命令会将本地仓库推送到远程服务器。 git pull命令则相反。

30 分支 分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

31 分支切换 创建一个叫做“feature_x”的分支,并切换过去: 切换回master: 再把新建的分支删掉:
git checkout -b feature_x 切换回master: git checkout master 再把新建的分支删掉: git branch -d feature_x 将分支推送到远端仓库: git push origin <branch>

32 gitignore文件 .gitignore,顾名思义就是告诉git需要忽略的文件。非代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要.gitignore了。比如一般c#的项目某人.gitignore是这样写的: bin *.suo obj

33 为当前的进度添加tag 查看tag 创建tag git tag,列出所有tag git tag -l v1.*,只列出v1.几版本
git tag v1.0,创建轻量级tag git tag -a v1.0 -m ‘first version’,带信息的tag git tag -s v1.0 -m ‘first version’,带签名的tag,GPG私钥

34 为之前的commit添加tag #首先查看以前的commit #假如有这样一个commit:8a5cbc2 updated readme
git log --oneline #假如有这样一个commit:8a5cbc2 updated readme #这样为他添加tag git tag -a v1.1 8a5cbc2

35 管理tag 删除tag: 很简单,知道tag名字即可 验证tag:有GPG私钥 共享tag:正常的push是不会把tag提交的
git tag -d v1.0 验证tag:有GPG私钥 git tag -v v1.0 共享tag:正常的push是不会把tag提交的 git push origin --tags

36 其他有用的git命令 git status可以查看文件的差别, git add (-A)添加要commit的文件
git add -i来智能添加文件 git commit提交本次修改,修改后可用git push上传到github。

37 GitHub网站帮助 首页

38 Questions?


Download ppt "Lecture-III-github使用 整理:许光全 计算机科学与技术学院"

Similar presentations


Ads by Google