都说程序员若是不知道 GitHub 就不是一个合格的程序员,其实这话说的过分了,不知道就学嘛,今天我们就来说说 Git 和 GitHub 到底是什么。
我们在开发软件的时候,常常是需要多人协作完成,这时候我们就需要对我们的代码进行控制,常见的版本控制工具有 CVS、SVN、Git ,区别就在于前两种是集中式的,而 Git 是分布式版本控制工具。
什么是版本控制呢,想像一下,我们需要修改一个文档,我们修改之前需要备份,修改之后需要和源文件进行比对,然后合并,若是多个人一同进行修改那就更麻烦了,一个不小心就将文档搞乱了。
而使用版本控制工具就可以解决这个,每一次改动都有记录,谁改动的,改的什么,我们可以清楚的看到并回到之前的版本。
那么集中式的管理工具和分布式又有什么区别呢?集中式的就是有一个中央服务器,每个人在作业的时候将代码 down 下来,写代码,然后 commit, 版本的信息都存放在服务器上。分布式就是我们每个人本地都有一个库,版本的信息都会存放在本地。
分布式的缺点是每次 down 或 commit 都需要联网,若是网络不给力,真的急死你,一个项目几百兆,坑你没话说。而在分布式中我们虽说可以轻松的控制版本,可是在多人交流以及推送的时候还是需要一个用于中间交换信息的服务器,GitHub 应运而生。
所以说 GitHub 解决了多人之间代码交互与推送的问题。我们可以将自己的代码放到 GitHub 上供他人吐槽,也可以去下载他人的代码来进行二次开发。当然,你也可以将自己的日记推送上去,如果你想的话。
Git 是一个工具,若是你不使用,这些命令很容易就遗忘,我就是这样,所以我也没有学习很多深奥的东西,只是简单的推送代码上去,拉取代码下来。使用 Git 可以用命令行也可以使用图形化界面。图形化工具据说 sourcetree 用的人挺多,今天我主要说命令。
1 安装 Git
直接到官网去下载,无脑安装即可。最后一步注意勾选,就可以在鼠标右击看到 Git 的 bash 和 GUI 的打开方式。
2 配置信息
因为 Git 是分布式的版本控制工具,所以你要告诉 Git 服务器你是谁,自报家门。配置 name 和 email .
git config --global user.name "XXX"git config --global user.email "XXX"
PS. 附送几个命令
删除全局配置项。
git config --global --unset user.name
编辑配置文件,当然也可以覆盖配置。
git config --global --edit
查看配置是否生效
git config --list
3 Git 创建本地仓库
pwd // 显示当前目录cd .. // 返回上一层 mkdir newRepo // 新建一个文件 newRepo ll or ls // 显示文件cd newRepo // 进入文件 newRepogit init // 将新建的文件初始化为 Git 本地仓库ls -a // 显示全部目录,包括隐藏的目录,会出现一个 .git 文件echo "这里是输入到文件中的内容" >> test.txt // (新建一个 test 文件,输入内容 >> 是追加的意思)cat test.txt // 查看文件git add test.txt // 添加文件到 Git 暂存区git commit -m " first commit" // 提交到仓库,并添加注释 “first commit”git status // 查看状态,clean 表示暂存区的文件已经全部提交
上面的操作,就是在本机新建一个文件夹,并初始化为仓库,新建一个文件,设置为本地的 Git 仓库。这里涉及到几个概念、工作区、暂存区、仓库。工作区就是我们自己的本地文件夹,暂存区是工作区和仓库中间的一层缓冲。
4 本机与远程相连
下图演示如何将公开的密钥添加到 GitHub。点击头像,选择 Setting 选中 SSH key 新建一个 SSH key ,将复制的公钥贴过来即可。
5 新建远程仓库,并推送数据到远程
登录 GitHub ,点击自己的头像,Your repositories, new 一个仓库,取个名字,添加描述语,直接 create repository 即可。
在新建一个库之后就会给出可能会使用到的命令。
新建一个 README.md 文件,并将文件提交到本地仓库中。
echo "# Blockchain_First" >> README.md git init git add README.md git commit -m "first commit"
这里注意,选择推送到远程的方式时,选择 SSH 加密的方式,不要使用 HTTPS 的方式,因为使用 HTTP 的方式每次推送都要输入账户和密码。
git remote add origin git@github.com:YU-JI-KUI/Blog.git
推送到远程的 master 分支上,第二次推送的时候就会默认推送到上次选择的分支,即不需要添加 -u origin master。
git push -u origin master
6 从 GitHub 上下载代码
直接找到想要下载的项目,直接下载即可,如下图
还可以使用命令,先到一个你想存放项目的目录,使用命令即可。
git clone git@github.com:YU-JI-KUI/Blog.git
好了,以上就是最最简单的 Git 和 GitHub 的应用了。