cynorr

Learn what I touched.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

简介


github是备份工作记录的优秀工具,工作机制比较复杂,但是使用却非常简单。github相当于文件备份的云,其上传操作和云的同步功能类似,下载和普通下载类似。上传工作原理如下图。

working dir是本地目录,HEAD是云目录,中间的index是缓存区。若要实现本地与github上同步,首先把要同步或要修改的文件或代码在缓存区(index)整理好,然后统一提交(commit)到云。

下面用一个简单的例子介绍github的使用。

例如:将一个简单的java工程上传到github。
* HelloWorld工程在workspace文件夹下。
* HelloWorld文件夹下有src,bin,lib子文件夹,分别存放源代码,可执行文件和库。

准备工作


准备比较麻烦,但一劳永逸。真正使用就非常简单了,最常用的上传修改和下载只要记住几行命令即可。

1.申请帐号:Click Here

  • 邮箱作为帐号,例如我的github帐号:cynorr @ sina.com
  • 用户名:sinorr

2.创建Repository

  • 点击 New Repository
  • 创建一个名为HelloWorld的Repository。

3.配置SSH keys

这一步就像QQ设备管理,例如你的1号PC生成长串乱码(passphrases),预存到github帐号信息里,就保证你的1号PC可以安全的连接github。如果你有多台PC,要在github帐号里面添加各个PC生成的SSH keys。只要完全按照命令打上去就完成了,如果想要了解passphrases工作原理:Click Here

$ ssh-keygen -t rsa -C "cynorr@sina.com"    #引号里面填写你的github邮箱

你会看到

Creates a new ssh key using the provided email
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.ssh/id_rsa):

直接点击回车,不要输入任何东西。

$ Enter passphrase (empty for no passphrase):            #输入一个密码,这将是以后在终端下链接github的密码
$ Enter same passphrase again:                                   #再次输入,确认密码

接着会出现

Your identification has been saved in /your_home_path/.ssh/id_rsa.
Your public key has been saved in /your_home_path/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db cynorr@sina.com

继续

$ eval  "$(ssh-agent -s)"           
Agetn pid xxxxx   
$ ssh-add ~/.ssh/id_rsa

到此,生成了所在PC的一个key,下面一步只要是把这个可以添加到github上就好了。
操作如下:

$ gedit ~/.ssh/id_rsa.pub  #用文本管理器打开ssh文件
    #然后把里面的内容全选,复制到剪切板

进入你的github主页,依次进入

设置 -> SSH keys -> Add SSH key

之后,你会看到你个空的标题,和ssh文本框。
标题可以写上你的PC名称,比如“实验室机器”,内容就是刚才复制的ssh文件内容,直接粘贴进去。

点击 右下方的Add key。

4.全局配置

git config --global user.name "sinorr"         #引号里填自己github的用户名
git config --global user.email cynorr@sina.com #田写github邮箱

到此,准备工作结束,一劳永逸。

上传文件


1.初始化本地文件夹

$ cd workspace/
$ git init        #该操作会在workspace文件夹下生成.git的文件夹,存放要链接的github帐号信息。
$ git add HelloWorld/      #把java的HelloWorld整个文件夹先放到缓存区。
$ git commit -m 'all file'  #commit是从缓存区到github上的操作集合,例如本次的操作只是add HelloWorld/
              #如果还有其他操作,全部写在commit前面,例如删除,编辑等操作。
$ git remote add test git@github.com:sinorr/HelloWorld.git   #指定要存的Repository
                                            #如果下面的操作(添加或删除文件)都在HelloWorld的Repository中,就不用在重复创建remote,直接引用已经创建好的test即可。
$ git push -u test master # 最后一步,执行同步命令。

下面可以到github个人主页上验证有没有把代码传上去了。

下载文件


相对简单,一个fork加一行命令,两步搞定。

例如,在其他用户上找到网络爬虫的git,想要下载下来。
git名称:spider.git

1.fork到自己的github

找到fork按钮,点击。就可以复制到自己的github上

2.下载

$ git clone git@github.com:sinorr/spider.git

下载完毕

$ ls      #看看spider的文件夹有没有下载到本地
posted on 2015-04-24 10:19  cynorr  阅读(1466)  评论(0编辑  收藏  举报