问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

GitHub入门指南:从基础概念到高效利用

创作时间:
作者:
@小白创作中心

GitHub入门指南:从基础概念到高效利用

引用
1
来源
1.
https://www.cnblogs.com/yangkaili/p/18219044

GitHub是全球最大的代码托管平台之一,它不仅提供了强大的代码版本控制功能,还集成了项目管理、代码审查、问题追踪等多种工具。无论你是初学者还是经验丰富的开发者,本文将带你全面了解GitHub的核心功能和使用技巧。

一、GitHub简介

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目Ruby on Rails、jQuery、python等。

二、GitHub的功能

那么GitHub有什么功能呢?作为开源代码库以及版本控制系统,GitHub拥有超过900万开发者用户。GitHub可以托管各种Git库,并提供一个Web界面,但它与外国的SourceForge、Google Code或中国的Coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。GitHub系统由GitHub公司的开发者Chris Wanstrath开发。系统采用了Ruby on Rails和Erlang作为后端。GitHub的许可条款并不要求公有仓库满足自由软件标准。GitHub官网被称之为全球最大的社交编程及代码托管网站。

三、GitHub简明教程

(1)创建新仓库

创建新文件夹,打开,然后执行git init以创建新的Git仓库。

(2)检出仓库

执行如下命令以创建一个本地仓库的克隆版本:

git clone /path/to/repository

如果是远端服务器上的仓库,用户的命令会是这个样子:

git clone username@host:/path/to/repository

(3)工作流

用户的本地仓库由Git维护的三棵“树”组成。第一个是用户的工作目录,它持有实际文件;第二个是暂存区(Index),它像个缓存区域,临时保存用户的改动;最后是HEAD,它指向用户最后一次提交的结果。

(4)推送改动

用户的改动现在已经在本地仓库的HEAD中了。执行如下命令以将这些改动提交到远端仓库:

git push origin master

可以把master换成用户想要推送的任何分支。如果用户还没有克隆现有仓库,并欲将用户的仓库连接到某个远程服务器,用户可以使用如下命令添加:

git remote add origin <server>

如此用户就能够将用户的改动推送到所添加的服务器上去了。

(5)分支

分支是用来将特性开发绝缘开来的。在用户创建仓库的时候,master是"默认的"分支。在其他分支上进行开发,完成后再将它们合并到主分支上。创建一个叫做"feature_x"的分支,并切换过去:

git checkout -b feature_x

切换回主分支:

git checkout master

再把新建的分支删掉:

git branch -d feature_x

除非用户将分支推送到远端仓库,不然该分支就是不为他人所见的:

git push origin <branch>

(6)更新与合并

要更新用户的本地仓库至最新改动,执行:

git pull

以在用户的工作目录中获取(fetch)并合并(merge)远端的改动。要合并其他分支到用户的当前分支(例如master),执行:

git merge <branch>

在这两种情况下,Git都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。这时候就需要用户修改这些文件来手动合并这些冲突(conflicts)。改完之后,用户需要执行如下命令以将它们标记为合并成功:

git add <filename>

在合并改动之前,用户可以使用如下命令预览差异:

git diff <source_branch> <target_branch>

(7)替换本地改动

假如用户操作失误(当然,这最好永远不要发生),用户可以使用如下命令替换掉本地改动:

git checkout -- <filename>

此命令会使用HEAD中的最新内容替换掉用户的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。假如用户想丢弃用户在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将用户本地主分支指向它:

git fetch origin
git reset --hard origin/master

(8)实用小贴士

内建的图形化Git:

gitk

彩色的Git输出:

git config color.ui true

显示历史记录时,每个提交的信息只显示一行:

git config format.pretty oneline

交互式添加文件到暂存区:

git add -i

四、如何高效利用GitHub

(1)了解GitHub风格

Gravatars的创始人、Jekyll作者、GitHub创始人,现任CTO Tom在GitHub第一年学到的10大教训、创业学校演讲中谈到GitHub文化的方方面面。简单将这种风格总结为以下要点:

  • 专注创作,高创意
  • 运营良好与较高的内外满意度
  • 高利润,较低的融资额或零融资

(2)学会向他人学习

GitHub本身建构在Git之上,Git成为必要工具,以下读物成为首选:

  • 《Git大白话入门,木有高深内容》
  • 《为什么Git胜过X…》

如果希望进一步深入,可以阅读已有中文翻译版的材料:

  • 《Pro Git》:GitHub公司传道士schacon所作,已翻译成多国语言,当然,有中文版。
  • 《GitMagic》:已有志愿者翻译中文版。

同样,如果希望了解更多GitHub自身的知识,GitHub官方文档值得推荐:

  • 《The GitHub Hep》

同时,可在以下地方学习:

  • GitHub上的代码库本身:尤其是:Explore、热门关注信息库两个栏目;
  • GitHub官方推荐:GitHub自身的官方博客与GitHub员工们的个人博客推荐的项目与开发者;
  • 各类社交媒体上提到的的GitHub库:尤其是HackerNews上提到的GitHub库。

(3)代码帮用户找工作

NumEric R(非GitHub工作人员)基于GitHub Pages功能做了一个简历生成器,使用极其简单,登陆网站GitHub简历生成器,填入用户的GitHub网站用户名即可。因为GitHub上的代码无法造假,也容易通过用户关注的项目来了解知识面的宽度与深度。现在越来越多知名公司活跃在GitHub,发布开源库并招募各类人才,例如:Facebook、Twitter、Yahoo… 开始有了第三方网站提供基于GitHub的人才招聘服务,例如:

  • GitHire:通过它,可以找出用户所在地区的程序员。
  • Gitalytics.com:通过它,能评估某位程序员在GitHub、LinkedIn、StackOverflow、hackernews等多个网站的影响力。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号