这个博客开了这么长时间了,还没有一篇算得上技术性的文章,博主作为一个伪技术宅很是惭愧。为了尽早结束这一悲摧局面,博主现转载+修改一篇之前发在51开源社区的git
和GitHub
入门文章。这两天优化过博文发表机制后,可能今后各种文章的发表会陆续多起来。
关于git
和GitHub
,一些背景问题就不再赘述,下面仅给出一些个人觉得有关的链接,烦请读者自行查阅。
顺便说明一下,本文受众主体系对git
和GitHub
不甚了解和熟悉者,高手请无视。不过由于本人对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
的使用并无太大关系,本文不再详细介绍,只随文给出相关链接以供有意者查阅。
git
对 SSH 的使用非常便捷,不需要用户过多设置,只是公钥/私钥对的生成需要人工操作,使用如下命令:
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
中的完全相同。
本文主要内容就到这里。以上仅仅是git
和GitHub
的使用入门,想要更加深入了解git
和GitHub
的相关知识,还请读者自行翻阅有关资料和教程。在此特别推荐《Git 权威指南》一书。