zoukankan      html  css  js  c++  java
  • GitHub

    GitHub

     

    最近在学习一些新东西,在实验环境下自己写的一些程序或脚本,觉得以后还能用的上,就想保存下来;

    如果保存在本地或者U盘之类的移动存储中,以后重装系统或者U盘丢失也就损失了,而且作为一个IT从业人员,这年头文件不存储在云端,都不好意思说自己是混IT圈的;

    最终选择了GitHub这个代码托管的网站,以后如果写出点像样的开源软件,还可以得到众多开发者的跟进,想想就挺美的!!!

    所以今天就花了点时间整理了一下官方的配置使用文档,以帮助有同样需求且看英文文档费劲的同行们!

     

    ##############################################################################

    • Git和GitHub的区别

    • GitHub术语解析

    • 配置使用

      • 注册GitHub帐号

      • 创建Git

      • 创建库

      • 复制库

      • 社交化

    ##############################################################################

     

    Git和GitHub的区别

    • Git是一个分布式的版本控制系统,与SVN类似;最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中,所以目前有很多著名的项目都使用Git进行版本控制;

    • 而GitHub是托管各种git库,并提供一个web界面的一个网站(官方地址是https://www.github.com/),可以通过本地的git客户端将自己的代码上传至GitHub;可以在GitHub上建立公共库,作为开源软件或个人使用,也可以付费建立私有库,这样就可以作为公司内部软件的代码管理工具;

     

    GitHub术语解析

    Blame

    Git中的“blame”特性描述了文件的每一行的最近一次修改信息,包括修改内容、作者和时间等;可用于追踪某软件新特性的添加及引起bug的提交操作;

    Repository

    库是GitHub的最基本元素,可想象成本地的项目文件夹;一个库包含所有的项目文件(包括帮助文档),并保存每个文件的修改历史;库可以有多个合作开发者,也可以作为公共库或私有库的形式开发;

    Private Repository

    私有库,是指只能被库的创建者或者合作开发者查看并编辑的库,需要付费使用;

    Branch

    分支是一个库的并行版本,包含在库内,允许独立的开发而不影响现有主分支(primary or master)的运行;当在分支的修改需要发布时,就可以将分支合并(merge)至主分支(master branch),这样利于多人的分布式开发;

    ==============================术语分类解析分割线==================================

    Pull Request

    即代码合并请求,由其它开发者或用户向项目的collaborators提议的修改请求,collaborators觉得修改信息合理有效即接受,否则拒绝;

    Merge

    将一个分支中的修改内容应用到另一个分支的操作就做合并;若两个分支内的修改内容无冲突,则可以通过合并请求(a Pull Request)或命令行(the command line)完成合并操作;

    Clone

    克隆,是将GitHub上的库文件整个复制到本地主机上,可以实现离线修改,等上线后再同步至Github上的库即可;

    Commit

    提交信息,或者称为修改信息,是个人提交的对文件的修改记录;

    Fork

    对其它开发者的库的个人复制,复制的库存在你自己的账户上,你可以自行修改项目内容而不会影响原始的库,也可以将自己的修改通过合并请求(a pull request)的方式请求原始库的开发者更新你的修改;

    Fetch

    取回,表示从在线的库上获取最新的修改信息而不需要合并代码,取回的代码可以与你本地的分支代码进行比较;

    Push

    推送,表示将本地的修改内容推送至线上的库,这样其它的开发者就可以通过GitHub网站访问到你的修改内容了;

    Remote

    远端版本,即类似于GitHub.com的非本地主机的项目版本,可以连接至本地克隆的版本以实现内容同步;

    ==============================术语分类解析分割线==================================

    User

    用户,指个人注册的GitHub账户,每个用户都可以拥有多个公共库或私有库,也可被邀请加入organizations或称为collaborates;

    SSH Key

    私钥,是GitHub用以验证你本地主机的身份的,并用此密钥加密传输GitHub网站和你本地主机的数据传输,以保证安全性;这个是需要在“Set up Git”步骤中配置的;

    Organizations

    组织,即多个开发者组成的团体,可包含众多的库和开发团队;

    Collaborator

    合作开发者,被库的所有者邀请共同开发某一项目,拥有对库的读写权限;

    Contributor

    贡献者,对项目有所贡献(如提交代码,修复bug等)的开发者,但不具备合作开发者的访问权限;

    ==============================术语分类解析分割线==================================

    Diff

    差异,指2个commit或保存的改变间的差异,可以很直观的看出一个文件自上次commit后增加或删除的内容;

    Open Source

    开源,原指可自由使用、修改和传播的软件,现扩展为一种超越软件的合作哲学,即工件(working materials)在线可用,可被任何人复制(fork)、修改(modify)、讨论(discuss)、并提出修改意见(contribute to);

    Markdown

    一种轻量级的标记语言,书写简单,不同于html,无需大量的<tag>就可以实现内容的格式化;GitHub上的众多库中的帮助文档就是这种格式,如README.md;

    Upstream

    上游,对于一个branch或者fork来说,源库的主分支即是其它修改信息的源头,被称为upstream,相对的其它branch或fork就被称为downstream了;

    详见https://help.github.com/articles/github-glossary

     

    配置使用

    注册账户

    注册地址:https://github.com/join

    账户注册没什么好说的,按照步骤进行即可;

    注:别忘记邮箱认证哦,以后的代码提交都需要依赖你自己设置的主邮箱地址(Promary GitHub Email)哦

    GUI客户端下载:http://git-scm.com/downloads

    创建Git(Set up Git)

    向GitHub提交你的用户名和邮箱地址,用以标识你的commit

    注:用户名可以随意,但邮箱地址与绑定在GitHub帐户上的必须一致;

    本地保存密码,避免每次通过https去clone一个库时都需要提供用户名和密码

    注:在下载git-credential-osxkeychain时,也可将地址直接复制到浏览器,下载速度会更快哦!

    若想通过ssh方式去clone自有的库,则需先配置SSH key

    生成公钥和私钥

    复制公钥内容并配置至GitHub中:cat ~/.ssh/id_rsa.pub

    验证测试

    注:个人测试未通过,总是超时,只能暂时使用HTTPS方式了。

    详见:https://help.github.com/articles/set-up-git#platform-all

    创建库(Create repositories)

    在GitHub上创建一个新的repo

    为新创建的repo添加帮助文档README

    创建README文件

    提交README文件

    推送所提交的内容

    为README文件增加内容后再次提交推送

    vi README # 编辑内容
    git commit -a # 编写内容保存后,会自动提交的
    git push origin master # 再次推送一次,以更新GitHub上的内容

    访问验证

    详见:https://help.github.com/articles/create-a-repo

    复制库(Fork repositories)

    复制库

    克隆复制的库至本地

    修改远端指向源库,而非你自己fork后的库;库被克隆后,默认会创建一个指向fork后的库的远端origin哦

    推送提交至自己fork后的库中

    从源库获取更新,并合并进自己fork后的库的主分支中

    创建分支并设置为当前活动分支

    分支间切换

    合并分支并删除

    详见:https://help.github.com/articles/fork-a-repo

    社交化(Be Social)

    开始找朋友,可以关注某些技术大牛的随时更新哦

    追踪某个项目

    通过发送Pull Request,将自己的修改代码提交给源项目的合作开发者,以贡献自己的微薄之力

     

    处理事件Issues,主要是指追踪项目出现的问题的集中地

    创建组织,合作开发

    标星收藏感兴趣的项目

    详见https://help.github.com/articles/be-social

    来自:http://www.cnblogs.com/xiaocen/p/3727324.html

  • 相关阅读:
    C语言 sprintf 函数 C语言零基础入门教程
    C语言 printf 函数 C语言零基础入门教程
    C语言 文件读写 fgets 函数 C语言零基础入门教程
    C语言 文件读写 fputs 函数 C语言零基础入门教程
    C语言 fprintf 函数 C语言零基础入门教程
    C语言 文件读写 fgetc 函数 C语言零基础入门教程
    C语言 文件读写 fputc 函数 C语言零基础入门教程
    C语言 strlen 函数 C语言零基础入门教程
    Brad Abrams关于Naming Conventions的演讲中涉及到的生词集解
    适配器模式
  • 原文地址:https://www.cnblogs.com/zhoupengyi/p/6087694.html
Copyright © 2011-2022 走看看