Github入门与实践

将敏捷开发导入开发现场的领军人物

以顾问身份就web应用的开发及服务指导过多家企业和团队

图灵社区会员

--------

社会化编程

各位在狭小的空间里呆上一段时间之后 再出门时候

是否有一种豁然开朗的感觉

对日外包出身的我来说  社会化编程 就给了我这种感觉

外包行业在IT界只是极端个例

让全世界码农看自己代码的事情

------

与全世界的开源开发者 交流代码心得

------

编写了小程序却找不到人指点

对某款开源软件的源代码感兴趣 为中意的软件出一份力

日系技术书刊 手把手教学风格

---------

本书有一个供各位实践的网站

-----

读万卷书不如行万里路

-------

支鹏浩

-------

代码审查不到位 审查效率低下

没有一个简单高效 能在一天之内添加多个功能的开发流程

池田大树

---------

《WEB+DB  PRESS》

《详解GIthub----使用Pull  Request打造高效率的软件开发》

---------------、

Github是为开发者提供Git仓库的托管服务

总部位于旧金山

章鱼还是猫的

octocat

---------

https://octodex.github.com/

------------------

为开发者 团队 提供了一系列功能 帮助其提高效率  高品质地写代码

-------

创始人之一  

Chris  Wanstrath

----------

https://github.com/features/hosting

=================

http://www.slideshare.net/rubymeetup/inside-github-with-chris-wanstrath

=============

2013年12月   Github托管的仓库已经超过1000万

========

http://git-scm.com

======

Github是网络上提供Git仓库的一项服务

理解Git就是熟练运用Github的关键所在

==========

群管理  Groupware

CRM  顾客关系管理

等脱颖而出

用于辅助多人协同工作的软件层出不穷 大部分又退出了历史舞台

协作形式变化

=======

然而在以程序员为代表的  软件开发者之间  一直都没有一个用来辅助多人协同编程的关键性软件

软件开发者

版本管理

BUg跟踪系统

代码审查工具

邮件列表

IRC

=============

Pull   Request

在开发者之间引起化学反应的

============

Pull Request 是指开发者在本地对源代码进行更改后 

向Github中托管的GIt仓库请求合并的功能

===============

Pull  Request上通过评论交流

例如 修改了BUG 可以合并一下吗

我搞了一个新的功能可以合并一下吗

===========

开源世界  社会化编程

软件开发方法的一次革命都不为过

Social  coding  社会化编程

以前的Github上就是社会化编程

=======

随着Github的出现  软件开发者们才真正意义上的拥有了代码

世界上任何人都可以比以前更加容易地获得源代码

将其自由更正并加以公开

========

在Github出现之前 软件开发中只有一小部分 人拥有更改源代码的权利 

这个特权阶级掌握着开发的主导权

开发者在改写 发布源代码之外往往需要花更多时间和精力去说服这个特权阶级

导致了许多起初效率很高的流行软件越发保守化  最终被时代所抛弃

=======

如今的IT业界已经没有了终身雇用制

人才流动性日益增大  可以说每个月我们都能在一些著名的开发者的博客中看到

月末刚发布消息 辞职了  月初 又入职了

==========

Git仓库管理功能是Github的核心

因此

使用Github之前必须先掌握Git的相关知识

同时本地设备还要安装Git的环境

------

Git属于分散型版本管理系统

2005年开发了Git的原型程序

Linux的Linus  Torvalds

===========

Linux内核的更新速度在全世界也是首屈一指

势必要一个功能性  的版本管理系统来提高开发速度

=====

当时有树款版本管理软件被开发出来 但是 功能和性能

都差强人意

Subversion

============

Git功能多到夸张

让人觉得至今没能掌握它

削减了笔者在版本管理系统上的时间

http://suversion.apache.org/

==========

版本管理就是管理更新的历史记录

记录一款软件添加或更改源代码的过程

回滚到特定阶段

恢复误删的文件

==========

Github将仓库Fork给了每个用户

Fork就是将Github的某个仓库复制到自己的账户下

Fork出的仓库与原仓库是两个不同的仓库

开发者可以随意编辑

           Github

          Fork

 git--------------->git

     <---------------

             Pull  Request

|                                         |

|                                         |pull  push

|                                         |

开发者                               开发者

==============

本地开发环境中有仓库  开发者不必链接远程仓库就可以进行开发

即便是不通过Github

开发者之间也可以push  pull

==========

只要规则得当  分散型同样像集中型那样进行管理

多个仓库并存的概念

  http://msysgit.github.io/

========

Git Bash

============

设置姓名和邮箱地址

================

git  config  --global  user.name   "firstname Lastname"

git  config  --global  user.email   "[email protected]"

这个命令会在 "~/.gitconfig"中以如下形式输出设置文件

想更改这些信息时候

可以直接编辑这个设置文件

这里设置的姓名和邮箱地址   会用在Git的提交日志上

在上传公开仓库时候

姓名 邮箱会随着提交日志一同被公开

======

代码是全世界看到 尽量用英文

==========

提供命令输出的可读性性

将color.ui设置为auto可以让命令的输出拥有更高的可读性

~/.gitconfig中会增加一行

[color]

  ui=auto

===============

创建Github账户

https://github.com

=============

Github上的随处可见的头像 账户独有的标识

是通过 Gravatar 服务显示的

使用过wordpress的读者可能对它有了解

==========

只要使用创建Github账户注册的邮箱 在Gravatar上设置头像

Github的头像就会变成您设置的样子

=========

运行下面的 命令创建SSH  Key

ssh-keygen  -t  rsa  -C  "[email protected]"

密码需要在认证时输入

=========

id_rsa 文件是私有密钥

id_rsa.pub是公开密钥

============

在github上添加公开密钥 今后就可以用私有密yao 进行认证了

点击右上角 账户设定按钮Account  Settings

选择SSH  keys菜单

点击 Add  SSH Keys之后

Key部分粘贴id_rsa.pub文件里面的内容

查看id_rsa.pub文件内容的 方法

cat ~/.ssh/id_rsa.pub

=============

就可以用手中的私钥与Github进行认证和通信了

========

ssh  -T   [email protected]

======

===============

使用社区功能

Github以人为焦点

那么在创建账户后不妨试试Follow别人

在用户信息页面的右上角点击如图所示的按钮

=============

对于仓库 也可以使用watch功能获取最新的开发信息

如果您经常使用的某个软件 正在 GIthub上进行开发

不妨去watch一下

-===================

在Github上进行交流时用到的Issue

评论

wiki

都可以用Markdown语法表述

从而进行标记

准确地说应该是 Github  Flavored Markdown

(GFW)语法

该语法是在Markdown语法基础上扩充而来的

但是一般情况下 只要按照原本的MarkDown语法进行描述就可以

使用Github之后 很多文档都需要用Markdown来书写

全世界有大量程序员都在使用Markdown

因此掌握这种语法已经成为程序员的标准技能之一

===============

公开代码 

clone 已有仓库

http://www.ituring.com.cn/article/775
==========

git status

Untracked  files

这个东西还没有添加到Git仓库

git  add  hello.php   到暂存区 再通过  git commit命令提交

暂存区 就是在Index数据结构中 记录文件提交之前的状态

将hello.php 提交到仓库

这样一来  这个文件就进入了版本管理系统的管理之下

今后的更改管理都由Git进行

git  commit  -m "wwjw"

===========

git   log

查看提交日志

=======

专栏  公开的许可协议

即便是在Github上公开了源代码

也不代表着作者放弃了著作权等权利

代码的权利持有人 请选择合适的许可协议

在Github上 有修正BSD许可协议

=====

Apache协议

等多种许可协议

大多数软件都使用mit许可协议

=============

 MIT许可协议具有以下特征

使用没有生命许协议的软件时  以防万一最好直接联系著作者

==============

git push   Github上的仓库就会更新

============

Git  初始化仓库

==============================

实际建立一个目录并初始化仓库

git init

执行这个命令就会生成.git目录

.git目录存着管理当前目录内容所需的仓库数据

称为  附属于该仓库的工作树

文件的编辑等操作 在工作树中进行  然后记录到仓库中

以此管理文件的历史快照   如果想 将文件恢复到原先的状态  可以从仓库中调取之前的快照

在工作树中打开

=====================

git  status 

查看仓库的状态

===========

============

猜你喜欢

转载自www.cnblogs.com/yizhixuepython/p/9297090.html