ubuntu上建立本地git 和 网络 github的上传与下载

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

1、首先要安装git 软件

在Linux上安装Git

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


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

如果之前没有安装过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、安装好了git之后就可以创建版本库了。什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以
被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

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

$ git init
Initialized empty Git repository in /home/sawyer/learngit/.git/

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

4、在本地库添加一个文件命令如下
$ nano readme.txt

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

第二步,用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m "first git"

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

为什么Git添加文件需要addcommit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。

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


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


  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:

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

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

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

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

# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566
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,可以选择使用命令进行复制,命令代码如下:

sudo apt-get install xclip
# Downloads and installs xclip. If you don't have `apt-get`, you might need to use another installer (like `yum`)

xclip -sel clip < ~/.ssh/id_rsa.pub
# 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仓库下运行命令:

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

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

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

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

$ git push -u origin master

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

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

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

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

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

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

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

$ git push  origin master

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

 

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

里面有很多的教程。

 

 

 





 



 
posted @ 2018-07-04 22:38  代码初长成  阅读(3321)  评论(0编辑  收藏  举报