初探 git 与 GitHub

这个博客开了这么长时间了,还没有一篇算得上技术性的文章,博主作为一个伪技术宅很是惭愧。为了尽早结束这一悲摧局面,博主现转载+修改一篇之前发在51开源社区的gitGitHub入门文章。这两天优化过博文发表机制后,可能今后各种文章的发表会陆续多起来。

关于gitGitHub,一些背景问题就不再赘述,下面仅给出一些个人觉得有关的链接,烦请读者自行查阅。

顺便说明一下,本文受众主体系对gitGitHub不甚了解和熟悉者,高手请无视。不过由于本人对git以及GitHub的使用亦属初级,文中如有舛误,望请邮件告知(xw_y_am@163.com),本人不胜感谢。

下面进入正题——

GitHub 注册及项目创建

GitHub目前尚未提供中文界面,因此英文不好的恐怕需要克服一些困难。
GitHub首页有一块很显眼的注册区域,只需填入必要的注册信息就可以得到一个免费的帐户。

当然,如果有更多需求,可以选择其收费服务。对于免费帐户,目前的主要限制有两点:必须公开源码,每个项目占用间大小在 1G 以内。然而免费帐户并没有限制项目的个数,因此对于空间大小的限制还是很宽松的。
注册完成后第一次登录GitHub,个人空间内一定空空如也。想要上传代码的话,还要先建立一个叫作repository的东西,中文翻译仓库,不过我更愿意称之为项目。点击页面右上角如图所示的小图标,进入项目创建页面。

继而如图填写相应的信息。最后点击绿色确认按钮来创立项目。

项目创立好后,需要使用git工具对项目进行管理。

下载 安装 git

git的下载和安装对于 Linux 系统非常方便,因为绝大多数 Linux 的发行版都自带有git工具。即便没有自带,也可以方便地通过包管理器和 Linux 软件源来下载安装,这里不再展开说明。
对于 Windows 系统,安装使用git for windows会稍微麻烦些。首先下载就是一个难题(尤其对于景德镇里的计算机用户)。git 官方提供的下载地址是 Google Code 的,由于种种原因,镇子里的用户访问 Google Code 不甚流畅。作为权宜之计,无法访问 Google Code 的话,也可以从华君软件园 处下载,不过这里版本会稍旧。
git for windows 的安装和其他 Windows 软件大同小异,无非是无数“下一步”罢了,不过其中也有应当略微注意的地方,下面以截图的形式列举出来。设置与图中一致后便可“下一步”了。

git for windows的一个方便之处在于,能在资源管理器的任意空白处打开git并自动切换git至当前活动目录。

git for windows主要有两种管理方式,图形界面和命令界面。本文主要介绍命令界面的使用,冠冕堂皇的理由是命令界面更加高效且具有高度的跨平台特性,而不可告人的原因则是博主一直没学会git图形工具的使用。

git 使用预备工作使用

git的工作方式是本地编辑源码并生成代码版本的改变信息,然后推送至远端;或者是将远端更新的代码变更拉取至本地。这就使得git需要具备和远端进行身份验证的机能。目前git支持的身份认证方式有用户名+密码SSH两种。个人认为,SSH 采用公钥加密算法,因此无论从日常使用的方便性和安全性角度,都要优于用户名+密码认证。因此,本文着重说明git的 SSH 认证使用方法。SSH 与公钥加密相关内容及术语,与对git的使用并无太大关系,本文不再详细介绍,只随文给出相关链接以供有意者查阅。
gitSSH 的使用非常便捷,不需要用户过多设置,只是公钥/私钥对的生成需要人工操作,使用如下命令:

ssh-keygen -t rsa -C "(email)"

就可以在用户文件夹下的.ssh目录里生成一对密钥,id_rsa是私钥(千万不要泄露出去),id_rsa.pub是公钥(需要将内容上传到网站上去)。对于 Windows 系统,用户文件夹在C:\Documents and Settings\(username);对于 Linux 系统,用户文件夹在/home/(username)
然后还要对git的两个全局变量进行设置:

git config --global user.name "(username)"
git config --global user.email "(email)"

这样的设置将会保存至名为.gitconfig的位于用户文件夹的文件中。

GitHub 的进一步设置

这一步要把刚才生成的公钥(即带有 pub 后缀的那个文件中的内容)导入 GitHub的安全设置里。
进入GitHub的个人设置界面,在 ssh key 的设置项中添加一个新的 SSH KEY,名称任意,内容是刚才生成的后缀名为 pub 文件中的全部内容。
设置完毕后可以使用

$ ssh git@github.com

来测试远程连接。如果给出的回显信息是

Hi (...)! You've successfully authenticated ...

就说明连接成功了。

一些常用的 git 命令参数

1. init

格式:

$ git init

作用:
用来将一个目录进行git初始化,大部分git的功能要在初始化后的目录及其子目录中才能使用。

2. add

格式:

git add (...)

作用:
添加文件至 git 版本追踪。对于 git,只对手动添加的文件进行版本控制管理,因此用户可以自主选择需要管理的文件。
命令中的(...)部分必选,可以是一个或多个文件名,也可以是通配符。

3. commit

格式:

git commit (...)

作用:
提交一次版本变更。确认文件变更,并将文件变更信息保存。这一命令为后边的 git push 做准备。
命令中的(...)部分可选。如没有任何参数,则git只提交最近add的所有文件,并打开默认的文本编辑器待用户输入提交说明。

常用参数有:

  • -a 自动检测所有曾经add过的文件,对所有改动过的文件一起提交。注意,同时提交的这些文件将共同使用相同的提交说明,想对不同的文件使用不同的提交说明,目前本人已知的方法只有逐一add要提交的文件,然后逐一commit
  • -m '...' 使用引号中的内容作为提交说明,而不打开编辑器另行输入。此方法适合说明较短或追求简单的用户。

4. remote

格式:

git remote add (...) git@github.com:(username)/(reponame).git

作用:
添加远端设置。其中(...)表示远端项目的本地提交代号,用户可自行命名。(username)(reponame) 分别换成注册帐号的用户名和目标项目的名称。

5. pull

格式:

git pull (...) master

作用:
拉取远端的最新变更。其中(...)应当与上一命令中的(...)完全相同。master表示分支,项目默认位分支是master。用户也可创建其他分支。

6. push

格式:

git push (...) master

作用:
将本地的最新变更推送至远端。其中(...)master两者的用法与git pull中的完全相同。

本文主要内容就到这里。以上仅仅是gitGitHub的使用入门,想要更加深入了解gitGitHub的相关知识,还请读者自行翻阅有关资料和教程。在此特别推荐《Git 权威指南》一书。

添加新评论