GitHub是一个很不错的代码管理工具。我们修改完代码,只需几条命令,便能同步到github,这样partner便会将它clone到自己机子上。省了用U盘或qq、ftp的传输,非常适合团队开发。而且支持OpenSource。
这里通过演示一个项目(NITIAN-W)的开发来详细介绍一下windows下如何使用git。
1)创建github账户
登录https://github.com,只需用户名、注册邮箱和登录密码便能注册一个属于自己的github(之后需要到注册邮箱中进行确认,非常喜欢这种注册方式,简单而且安全)。之后便能通过github.com/用户名
的URL进行访问。
2)安装github windows客户端
客户端下载地址:https://windows.github.com/
安装后便会得到两个应用:

3)创建repository(仓库)
其实创建仓库,可以通过网页版github进行,不过这里通过上图的客户端GitHub进行创建。
登录后,点击create创建仓库。

仓库名一般和你的工程名一样(这样不会混淆),主要是选择你的工程目录。点击create后,便成功创建仓库,这时网页版github便会同步显示(但内容为空)。之后要将工程内容同步到网页版github上:

在客户端中打开刚创建的仓库,可以看到工程中的源码,这时在左侧的summary栏中随便写,之后点击下面的Commit
to master:

点击右上角的publish,便将源码同步到了网页版github上(如下):

4)Git Shell操作
然后打开Git Shell,输入以下命令获得密钥:
ssh-keygen -C 'github的注册邮箱' -t rsa
一直回车后,根据提示的密钥生成目录找到id_rsa.pub文件,将其中的内容(公共密钥)注册到网页版github上:
点击框住的按钮,进行账户设置

打开SSH keys

点击Add SSH key

然后在title栏中随便输入,将密钥复制到key栏。

之后Git Shell中输入以下命令进行验证是否获得权限:
ssh -T git@github.com
应该出现:

Yes,我们可以通过shell来操作了。
5)同步工程
接下来我们在eclipse中修改了源码,但此时github并没有同步,通过Github客户端进行同步:
在Local栏中选中NITIAN-W这个仓库,点击框住的按钮

这是右边出现的文件就是我们修改过的,在左侧填上NITIAN-W(随便),然后点击下面的Commit to
master

点击sync,进行同步

稍后,修改过的工程便同步到了github上。GitHub客户端中的History便记录着我们的每一次修改,类似版本迭代,可以进行回顾。

这样,每当我们修改完工程,只需打开客户端执行三步便能完成同步。那我们如何上传一些文件(项目文档和视频)到这个仓库中?
6)利用Git Shell上传文件
我们也可以用上面同步代码的方法,用客户端进行上传——将文档放在NITIAN-W的eclipse工程目录中(我们已经将NITIAN-W的eclipse工程目录与github中对应的仓库绑定了),然后同步。不过这里我们采用Git
Shell的方式。
首先将github中的NITIAN-W仓库clone到本地

这时在当前目录下会出现NITIAN-W的工程目录,将项目API放在该目录中

在Shell中执行如下(注意:shell的目录要切到NTIAN-W中)

如果遇到git remote add出错,则如下执行:

另外,如果遇到git push NITIAN-W master出错:
error:failed to push som refs to.......
则执行如下语句:
git pull NITIAN-W master
先将远程服务器github上的文件拉下来,再push上去(之后再执行git push NITIAN-W
master)。
这样便上传成功

7)实时更新clone到的工程
还有一个问题,如果我们是clone别人的github上的仓库,那如何获取最新的版本?这种情形是我将修改的工程同步到了github上,我的队友此前已经clone了一份NITIAN-W工程到他自己的机子上,这是他需要更新的版本,那么如下执行:

这样他便拿到最新版本的工程,他可以为它添加文档,再上传到github上。
8)总结:
接着7),我的队友拿到新的工程,他将它部署到eclipse中,进行再次修改(实际上这个工程只包含文档和源码,在eclipse导入源码后需要在src上Build
Path-->use as source folder才能正确执行)。等他修改完后,用新的工程替换旧的工程,push到我的github上,这样我也能获得最新的工程。只不过他的更新和同步上传全都通过Git
Shell进行,并伴随文件的移动,而我的更新和同步上传只需通过客户端的GitHub进行。也许这不是最省事的开发模式,但对于入门和上手很实用。
最后一起去阿里巴巴的github玩一玩:
git clone https://github.com/alibaba/ali-kernel
于是我们把阿里云OS的kernel下载下来了,能去给它添加文件test.txt(里面有料)并同步到阿里的github吗?

然而

这是没有权限的问题,这需要阿里接受我们成为它的collaborator或team members才行。最后介绍一下如何添加collaborator,毕竟上面的一切需要我们将队友纳入collaborator。
点击Github(网页版)上的Repositories,进入要共享的文件NITIAN-W

点击右侧的Settings

再点击Collaborator

在右侧的方框中输入队友的github账号,然后Add collaborator即可

|