• 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

    wKiom1Nx2SbCryt7AADUimIDKA4801.jpg

    wKioL1Nx2RGR0w6zAADeydp7E9E876.jpg

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

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

    wKiom1Nx2W6yWVvUAAJMsprEejw996.jpg

    wKiom1Nx2Y6iIpfQAAFNJrVqOus818.jpg

    wKioL1Nx2YfzkXm1AACo7VlIS4g719.jpg

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

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

    生成公钥和私钥

    wKiom1Nx2luRpetqAAHKQBhxyoA134.jpg

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

    wKiom1Nx2eeQY6M3AARsDBsCAU8875.jpg

    验证测试

    wKiom1Nx23yygigCAANNeQYNxyg550.jpg

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

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

    创建库(Create repositories)

    在GitHub上创建一个新的repo

    wKioL1Nx24mBEgIRAAt-nOnTL-Y018.jpg

    wKiom1Nx29fR3SJNAAQg65ekKW8513.jpg

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

    创建README文件

    wKiom1Nx3ATQRj3BAAKv7BCYGbk348.jpg

    提交README文件

    wKioL1Nx2_OxVui6AAE9uPQhfSA072.jpg

    推送所提交的内容

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

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

    访问验证

    wKiom1Nx3FrQvvBkAANhgojzUTA398.jpg

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

    复制库(Fork repositories)

    复制库

    wKioL1Nx3EqQMjWLAAD449ndAyw411.jpg

    克隆复制的库至本地

    wKioL1Nx3GDxFG0AAADaw0eGByw192.jpg

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

    wKioL1Nx3HrT2jINAAIvsBlaJlo741.jpg

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

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

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

    分支间切换

    合并分支并删除

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

    社交化(Be Social)

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

    wKiom1Nx3TODanaKAADAEmzmG7o418.jpg

    追踪某个项目

    wKioL1Nx3SGj_ETNAADsAioCy4w127.jpg

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

     

    wKioL1Nx3Wyi1uyCAACmTbyGK6s930.jpg

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

    wKioL1Nx3YrA0seeAAAgv_TyK9E368.jpg

    创建组织,合作开发

    wKiom1Nx3duzHMQYAAFvvGVjuwo014.jpg

    标星收藏感兴趣的项目

    wKioL1Nx3dTxCASoAAHlKx_e5pY181.jpg

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

     

    好了,一个简单的GitHub就配置完成了,尽情在本地开发代码,然后上传GitHub托管吧,妈妈再也不用担心我的代码丢失啦!

  • 相关阅读:
    安装黑苹果的config.plist
    navicat for mysql 导出数据的坑
    js中的深层复制
    js写的一个HashMap
    js前台数据校验
    nginx对上传文件大小的限制
    tomcat用户配置,内存配置,pid配置
    redis安装及使用
    程序端口被占用分析
    zookeeper+dubbo-admin开发dubbo应用
  • 原文地址:https://www.cnblogs.com/xiaocen/p/3727324.html
Copyright © 2020-2023  润新知