github工具是一个很好用的工具,可以在本地建立一个git仓库,存储当前写的程序或者数据,然后通过ssh与github建立联系。具体怎么实现,下面进行介绍。

1、首先要安装git 软件

在Linux上安装Git

首先,你可以试着输入git,看看系统有没有安装Git:

  1.  
  1. $ git
  2. The program 'git' is currently not installed. You can install it by typing:
  3. sudo apt-get install git

  1. 如果之前没有安装过git的话,输入上面的git命令就会出现The program 'git' is currently not installed. You can install it by typing:
    sudo apt-get install git
    ,然后输入sudo apt-get install git,就可以安装git了。
  2. 2、安装好了git之后就可以创建版本库了。什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以
    Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
    所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

  1. $ mkdir learngit
  2. $ cd ./learngit
  3. $ pwd
  4. /home/sawyer/learngit
  1. pwd命令用于显示当前目录。
    我的电脑下面显示如下:
  1. sawyer@sawyer-ThinkPad:~$ cd ./learngit
  2. sawyer@sawyer-ThinkPad:~/learngit$ pwd
  3. /home/sawyer/learngit
  1. 3、在home下面建立好了一个文件夹之后就可以建立一个git仓库了。
    建立git仓库的命令如下:
    通过git init命令把lerarngit这个目录变成Git可以管理的仓库:
  1.  
  1. $ git init
  2. Initialized empty Git repository in /home/sawyer/learngit/.git/

  1. 我的电脑显示如下:
  1. sawyer@sawyer-ThinkPad:~/learngit$ git init
  2. Initialized empty Git repository in /home/sawyer/learngit/.git/
  1. 现在就已经初始化好了,已经建立了一个git本地仓库。在命令行输入ls无法显示.git,因为这是个隐藏文件。可以使用ls -al命令,然后会有显示,或者打开对应的文件夹,
    使用快捷键ctrl+h,就可以看到在learngit 文件夹下面有一个.git文件。
  2. 4、在本地库添加一个文件命令如下
  1. $ nano readme.txt

  1. readme.txt 中输入一句文本:this is my first git,然后保存
    和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。
    第一步,用命令git add告诉Git,把文件添加到仓库:
  1. $ git add readme.txt
  1. 执行上面的命令,没有任何显示,这就对了,
  2. 第二步,用命令git commit告诉Git,把文件提交到仓库:
  1. $ git commit -m "first git"

  1. 我的电脑显示如下:
  1. sawyer@sawyer-ThinkPad:~/learngit$ git commit -m "first git"
  2. [master (root-commit) 48819ed] first git
  3. file changed, insertion(+)
  4. create mode readme.txt
  1. 简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
    git commit命令执行成功后会告诉你,1 file changed1个文件被改动(我们新添加的readme.txt文件);1 insertions:插入了一行内容(readme.txt有一行内容)。
  2. 为什么Git添加文件需要addcommit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。

初始化一个Git仓库,使用git init命令。

  1.  

添加文件到Git仓库,分两步:

  1.  
  1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
  2. 使用命令git commit -m <message>,完成。

以上是建立了一个本地仓库的完整过程。下面将要介绍把建好的本地库上传到github上面。

5、创建一个ssh,这里解释一下,如何把本地的仓库上传到github呢,首先需要先建立一个联系,将本地仓库与github建立联系使用ssh。

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

  1. $ ssh-keygen -t rsa -C "youremail@example.com“

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第二步:将新生成的key添加到ssh-agent中(这一步必不可少):

  1. # start the ssh-agent in the background
  2. eval "$(ssh-agent -s)"
  3. Agent pid
  4. ssh-add ~/.ssh/id_rsa

第3步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key。

小提示,如果不想手动打开id_rsa.pub,可以选择使用命令进行复制,命令代码如下:

  1. sudo apt-get install xclip
  2. # Downloads and installs xclip. If you don't have `apt-get`, you might need to use another installer (like `yum`)
  3.  
  4. xclip -sel clip < ~/.ssh/id_rsa.pub
  5. # Copies the contents of the id_rsa.pub file to your clipboard

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。

6、现在本地库和github已经建立起了连接诶,现在就可以将本地库的信息上传到github库中了。在将本地库上传到github时需要在github上建立一个库。

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。

首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:

在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:

  1. $ git remote add origin git@github.com:Deep/learngit.git

请千万注意,把上面的Deep替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上:

  1. $ git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

以上6步完成了本地仓库的创建,本地仓库与github建立联系,本地仓库上传到githuab仓库,下面介绍如何从github上面下载文件。

7、如何克隆github的数据,这里我以下载刚才上传的文件为例进行克隆下载。

  1. $ git clone git@github.com:Deep/learngit.git

这个命令就可以克隆Deep帐号下的learngit了。

通过下载的这个learngit,可以修改里面的文件,在使用下面这个命令

  1. $ git push origin master

就可以把修改的内容在上传到github上了。实现了修改github的内容。

这篇随笔主要是自己在学习git与github做的记录,学习内容参考了廖雪峰老师的网站,他写的很好,很细致,适合新手学习,在此贴上链接:https://www.liaoxuefeng.com/

里面有很多的教程。

  1.  
  1.  
  1.  

ubuntu上建立本地git 和 网络 github的上传与下载的更多相关文章

  1. GitHub学习二-将本地Git库与Github上的Git库相关联

    0 git clone 如果是从自己的github clone,一键搞定,和三步的git remote add功能一样. 1.创建本地库 新建目录,右键git bash here,输入 git ini ...

  2. 本地git连接远程github

    git要连接GitHub仓库,是通过SSH加密连接的,所以必须要创建SSH key ssh-key -t rsa -C "youremail@example.com" 这里邮箱必须 ...

  3. 本地git关联远程github

    0. 前言 我们开发的项目,均在本地开发:为了保证项目进度的一致性和公开性等,我们通常将开发过程代码或成品放置到github中,本文就讲述如何使得本地git与远程github同步! PS:以下两个名称 ...

  4. 如何将本地git仓库中的代码上传到github

    1,  在github上新建一个仓库,比如为:CSS3Test,仓库地址为:https://github.com/hyuanyuanlisiwei/CSS3Test 2,本地git仓库中的文件项目为C ...

  5. (转)如何将本地git仓库中的代码上传到github

    1,  在github上新建一个仓库,比如为:CSS3Test,仓库地址为:https://github.com/hyuanyuanlisiwei/CSS3Test 2,本地git仓库中的文件项目为C ...

  6. 本地Git仓库和Github仓库的关联

    1.我们首先创建一个文件夹(用于保存本地仓) 在我们想要创建的路径下右键鼠标打开Git Bash Here(创建一个文件夹,并进入文件夹) 2.通过命令git init把我们刚才创建的文件夹变成Git ...

  7. 本地Git仓库与GitHub/GitLab仓库同步

    本地仓库即为在你的电脑上的项目文件,远程仓库即为服务器仓库,如GitHub.GitLab或其他等.此处以GitHub介绍本地仓库与远程仓库的同步.可先创建本地仓库,也可先创建GitHub仓库,但都需要 ...

  8. 使用Git Bash在码云上上传和下载代码

    前提是在码云上已经新建一个空的项目 1.新建一个目录,存放下载下来的项目,我在D盘新建了一个"gitspace"文件夹,用来存放下载下来的项目 2.进入刚刚新建的文件夹,即进入&q ...

  9. 本地Git仓库与Github远程仓库同步

    在本地创建了一个Git仓库后,还想在Github创建一个Git仓库,并使其远程同步.1.在电脑的用户主目录下有无.ssh目录,若有看是否有id_rsa和id_rsa.pub文件.若无,则创建SSH K ...

随机推荐

  1. 理解mouseover,mouseout,mouseenter,mouseleave

    mouseover定义和用法 当鼠标指针位于元素上方时,会发生 mouseover 事件. 该事件大多数时候会与 mouseout 事件一起使用. mouseover() 方法触发 mouseover ...

  2. jQuery实现18位身份证输入隔位添加空格及格式验证

    说明:jQuery实现身份证输入添加空格,表单验证身份证输入,并且输入时前6位添加一个空格,中间8位后添加一个空格,及身份证格式验证 参考:基于jquery实现的银行卡号每隔4位自动插入空格的实现代码 ...

  3. mac下打开hosts文件

    1打开控制台 输入vi(空格)/etc/hosts 进入hosts文件,输入i更改为编辑状态,更改完esc然后shift+:在输入wq保存退出 2打开Finder然后选择上面前往,到前往文件夹,输入/ ...

  4. mui.ajax()和asp.net sql服务器数据交互【3】最终版

    1.前端页面 <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-ic ...

  5. 2-3 Sass的函数功能-列表函数

    列表函数主要包括一些对列表参数的函数使用,主要包括以下几种: length($list):返回一个列表的长度值: nth($list, $n):返回一个列表中指定的某个标签值 join($list1, ...

  6. Page Cache的落地问题

    除非特别说明,否则本文提到的写操作都是 buffer write/write back. 起因 前几天讨论到一个问题:Linux 下文件 close成功,会不会触发 “刷盘”? 其实这个问题根本不用讨 ...

  7. 【Python】安装配置Anaconda

    优点:解决Python 库依赖问题 清华安装镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

  8. Android Studio图形基础(AS开发实战第二章学习笔记)

    图形基础 一.drawable 在代码中引用drawable文件可分为两种情况 (1)使用setBackgroundResource和setImageResource方法,可直接在参数中指定drawa ...

  9. IIFE

    一.IIFE IIFE:immediately-invoked function expression,即时调用函数表达式. 如果一个函数,在定义的时候,就想直接调用它,就是一个IIFE. 函数执行方 ...

  10. ES6入门——let和const命令

    let和const命令 1.let命令 用法:类似于var,用来声明一个变量,区别是所声明的变量只在let命令所在的代码块内有效. let命令很适合用在for循环的计数器中,因为let声明的变量仅在作 ...