xsmscb 发表于 2015-10-29 14:53:27

linux下Github 同步与下载

简介
  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>  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 at sina dot 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的文件夹有没有下载到本地
页: [1]
查看完整版本: linux下Github 同步与下载