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

Slides:



Advertisements
Similar presentations
Chapter 3: SQL.
Advertisements

版本控制的史前时代 用存储介质拷贝代码 代码相互覆盖,不知道哪个版本是正确的 搞错了无法恢复,需要定期手工备份
吴宏鹏 源自:
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
GIT 分布式管理工具.
在PHP和MYSQL中实现完美的中文显示
移动电子商务时代来临 即刻“升级”还是等待被淘汰 PayPal 中国区产品总监 赵祺 信行软件CEO 周翔.
格物资讯开放ICON库 V1R1.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
GitHub 2015/10/28 鄭雅馨.
GERRIT使用说明 配置管理-高峰
开源软件分布式版本控制器 GIT Linus的第二个伟大作品 演讲者:喻鹏.
MariaDB Spider分库分表引擎调研
从入门到实践.
SVN的基本概念 柳峰
第二讲 搭建Java Web开发环境 主讲人:孙娜
学习前的准备工作 讲师:burning.
Chinese Virtual Observatory
R in Enterprise Environment 企业环境中的R
Concurrent Versions System (CVS)
Introduction to Git Lu Li
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
欢乐玩转GIT 讲师:FREE QQ:
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
Windows网络操作系统管理 ——Windows Server 2008 R2.
科研信息管理工具 Endnote X4 王辉.
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
ENS 10.1安装配置指南 王俊涛 | SE.
访问Epic games官网( 点击右上方“获取Epic games”进行下载
Git & github By 宋正倫 (修訂by jmchen).
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
YMSM D-PACK 安装手册 作成者:D-PACK维护组(YMSLx) 作成日:
VSS使用简介 王树升
数据说明 郝蕊.
任务1-3 使用Dreamweaver创建ASP网页
实习前你需要知道的 PRESENTED BY Yisa.
Feature and function introduction to GIT & Linux June 22, 2013
环境配置及使用.
程序设计工具实习 Software Program Tool
電子郵件簡介.
Web安全基础教程
Git使用入门 —johnson.
第四章 团队音乐会序幕: 团队协作平台的快速创建
Git 王宇鑫.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
3Glasses SDK for Unreal Engine Plugin
文档创建与发布操作要点 青海省教育信息中心 2018年12月18日.
Touch Github = Touch the World
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
Google的云计算 分布式锁服务Chubby.
Git 新一代版本控制系统 superwen.
Git使用简介 rainzha
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
JUDDI安装手册.
百万行、千万行数据查询教程 老黄牛.
Primary introduction to docker
Presentation transcript:

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

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

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

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

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

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

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中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

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已经成为了管理软件开发以及发现已有代码的首选方法。

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

事件报道 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位

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

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

GitHub Guides

创建仓库

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

使用GitHub 创建新的版本库

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

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

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

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

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

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

为了把本地的仓库传到github,还需要配置ssh key。 $ ssh-keygen -t rsa -C ”losin@tju.edu.cn"

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

验证是否成功 $ ssh -T git@github.com 这就表示已成功连上github。

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

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

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

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

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

为当前的进度添加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私钥

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

管理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

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

GitHub网站帮助 首页 https://help.github.com/

Questions?