git已经红火了好多年,但是作为一个非开发人员,要不是下载raspberry pi的开发环境有接触过,对其真是非常陌生。为了跟上这如火如荼的计算机世界发展的脚步,今天也来试一下github的功能。就以上一篇libusb的测试内容为例,在github上创建一个仓库并将代码上传到github。
一切只需要从注册一个github账号开始,然后在github的页面上创建一个repository,并为其取个名字叫做libusb_test,创建好仓库之后,github会亲切的提示你“create a new repository on the command line”,本文参考了这里给出的步骤。最后自然得安装git客户端,我用的客户端是从git-scm上下载的,是一个git bash,不带GUI ,地址在这里http://git-scm.com/download/win ,网站上有GUI的,但是出于某种原因,我没有尝试。
在上面的准备工作都做好之后,桌面上应该可以能找到Git Bash的图标了,双击打开它,然后进入libusb的目录(其实Git Bash实际上用的是MingW),如下:
1 2 3 4 |
$ pwd /c/F/m/libusb |
依据提示,要创建一个README文件,其实只是建议,不勉强:
1 2 3 |
$ echo # libusb_test >> README.md |
很简单,但是在Git Bash里面始终无法创建这个文件,只好去目录下手动创建了一个,然后将“# libusb_test”写入
接着初始化git:
1 2 3 4 |
$ git init Initialized empty Git repository in c:/F/m/libusb/.git/ |
添加README.md文件:
1 2 3 |
$ git add README.md |
添加文件:
1 2 3 |
$ git add * |
提交改动:
1 2 3 4 5 6 |
$ git commit -m "first commit" [master 2067165] first commit 1 file changed, 1 insertion(+) create mode 100644 README.md |
将本地仓库链接到github服务器:
1 2 3 |
$ git remote add origin https://github.com/jma87/libusb_test.git |
将改动提交到github:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ git push -u origin master Username for 'https://github.com': jma87 Password for 'https://jma87@github.com': Counting objects: 195, done. Delta compression using up to 2 threads. Compressing objects: 100% (183/183), done. fatal: The remote end hung up unexpectedly94% (185/195), 14.46 MiB | 8.00 KiB/s t=56, HTTP code = 200 Writing objects: 100% (195/195), 21.52 MiB | 8.00 KiB/s, done. Total 195 (delta 41), reused 0 (delta 0) fatal: The remote end hung up unexpectedly Everything up-to-date |
这里明明显示up-to-date,可以为什么github里面仓库还是没有内容呢,将github上的仓库再clone到本地测试提示repository是空的:
1 2 3 4 5 6 |
$ git clone https://github.com/jma87/libusb_test Cloning into 'libusb'... warning: You appear to have cloned an empty repository. Checking connectivity... done. |
咦,为什么?难道是因为本地目录名(libusb)和仓库名(libusb_test)不匹配造成的,删除github上的仓库重新再建,然后将本地目录也重命名为libusb_test,重复上面的步骤,果然就正常了,这次git push提示的信息和之前有些不同:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ git push -u origin master Username for 'https://github.com': jma87 Password for 'https://jma87@github.com': Counting objects: 34, done. Delta compression using up to 2 threads. Compressing objects: 100% (27/27), done. Writing objects: 100% (34/34), 858.41 KiB | 0 bytes/s, done. Total 34 (delta 6), reused 0 (delta 0) To https://github.com/jma87/libusb_test.git * [new branch] master -> master Branch master set up to track remote branch master from origin. |
仔细一对比,才发现之前的日志里面是有错误的"fatal: The remote end hung up unexpectedly",粗心了。这是github的截图,所有的文件都已经上传到github了:
果然是神器啊,以后走到哪里都能随时下载代码,真是方便。还有值得夸赞的就是github上不仅repository可以删除,自己的账户也可以destroy,真是难得的人性化,还有哪家能提供自己注销账号的功能呢?文章最后,保存一份github最简单明亮的说明:http://rogerdudler.github.io/git-guide/index.zh.html