本文为《廖雪峰Git教程》学习笔记,原地址:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
萌新入门,略有心得,戏说一番。
本章包括两部分内容,
1. git 本地库中文件的添加和提交;
2. 连接github 添加远程库
先来个正版概念镇个贴:
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
假设,
我是一个单机游戏爱好者(好吧这不是假设。。)
那么Git 就可以理解为存档的文件夹“save”
你每个游戏进度的存档就可以理解为程序每个不同的版本
Git负责把这些乱七八糟的存档文件管理起来
安装
在linux中,可以直接输入git查看是否安装
若是没有安装,它会弹出提示你输入:
sudo apt-get install git
创建版本库:
$ mkdir learngit // 创建一个目录 作为版本库
$ cd learngit // 跳转到该目录下
$ git init // 对该目录进行初始化,目录下会多出一个.git 文件
现在就可以把 learngit 文件夹 作为一个版本库来用了。
接下来,我们开始向版本库里写文件。
在当前目录learngit中,创建一个GGS.txt 文件,内容为:
Good good study !!
现在库中多了一个文件,git 已经意识到,我们利用如下命令检查一下当前git 的状态:
$ git status
此时的状态可以理解为git 意识到版本库中文件发生了改变。
接下来有两步操作:
第一步,add,键入:
git add GGS.txt
回车后我们发现没有任何反应,没有任何反应就是最好的反应,代表add成功。
git status 查看一下状态
这里看到add成功,文件名变成了绿色。
此时文件进入了暂存区,并没有提交到版本库中。
第二步,commit,提交,键入:
git commit -m " add GGS.txt" // 这里-m“..." 表示添加版本修改注释,引号中写当前版本做了哪些修改,方便管理。
如此,GGS.txt 文件就提交到了库中。
前面提到了暂存区,进行add 操作之后,文件会进入暂存区,可以理解为待上传的队列,我有一批修改的文件等待commit,于是我们把他们放在一起,最后提交。
小结,
将文件提交到版本库中:
先add, 再commit。
那么如何实现远程仓库和本地仓库的同步呢?
接下来说一说,github 的生存向用法。
首先注册账号,进入到设置页面:
settings ---> Personal Settings ---> SSH and GPG keys ---> new SSH key
Title 随便写一个 比如 my ssh key
key的填写:
回到Linux的主目录下,找找看有没有 .ssh 文件夹
$ cd /home/recycle // recycle 是系统用户名
$ ls -al
如果没有就进行创建:
$ ssh-keygen -t rsa -C "[email protected]"
// 引号中填写邮箱
可以不用设置密码,一路回车
这是你有了 .ssh 文件夹,打开它,里面有两个文件
这俩文件就是ssh key的密钥对
id_rsa 是私钥 不能泄露出去
id_rsa.pub 是公钥,可以放心地告诉任何人
打开公钥 id_rsa.pub 将其内容复制进,github网页里的my ssh key中,确认提交。
这样,github里的账户就有了你本地计算机的钥匙,可以自由出入,上传下载数据了。
接下来实验如何添加远程库
进入github 网页
回到本地的仓库,
$ git remote add origin [email protected]:wly95/testing.git
这里origin是远程库的名字,可以改为其他,习惯用origin
wly95 是我的github 用户名
testing.git 是刚建立的 repository
上传:
$ git push -u origin master
第一次进行这样的操作时,会出现ssh警告,确认你的身份,键入yes,就可以了。
进入网页就可以看到,在testing中,有着与本地仓库一样的文件,上传成功。
下载(克隆)
$ git clone [email protected]:wly95/testing.git
之后会在当前目录中多处一个testing 目录,打开之后:
基础命令总结:
$ git init // 初始化git 仓库
$ git add xxx.xxx // 添加文件进入队列(暂存区)
$ git commit -m "xxxxxxx" // 提交当前暂存区内容进入仓库
$ git remote add origin [email protected]:username/gitname.git
// 建立本地与远程仓库的关联
$ git push origin master // 本地库所有内容上传到远程库
$ git clone [email protected]:username/gitname.git
// 下载(克隆)远程库内容到本地