066-开始探索神奇的Github
刘小泽写于18.12.13
不知你是否遇到过这样的问题,自己的代码虽然整齐放在硬盘或者云盘中,但是用的时候还是不好找;想要获得之前的版本,看看自己这些天做了哪些改动,最后只找到一个版本;想要和别人分享,听听别人的意见,但找不到一个又快捷又高效的方法。
于是,GitHub出现在我们的世界,造福了代码界。
花花最近买了一本Github入门的书,好心的花花看我在学git马上借给了我,下面写一下今天的学习过程
GitHub的故事
https://buzzorange.com/techorange/2015/04/09/linus-torvalds-talked-about-git/
看看linux之父Linus Torvalds 是如何在10天之内开发完成这一个分布式系统的,并且理由很简单:他痛恨SCM(Software Configuration Management),并且自己很厉害。牛人就是这样,用的不爽,自己开发!
Github的使用
https://github.com 主要就是注册的过程,邮箱在下面的操作过程中会经常用到
终端Git的使用
Git应该包括三个版本,其中GitHub是网站版,还有Github桌面版(Mac和Windows的应用程序)和Git的terminal终端版
我们平时都会上Github看别人的代码,但别人修改和上传并不是直接从网站版的Github进行操作的。一般都是使用VS code(听别人讲很好用,自己今天抱着试试看的心态下载下来,开始用的确实不错,感觉日后会上瘾的🤓),然后搭配终端的Git,可以直接修改并且上传到网站,更重要的是,可以通过git log
清楚记录自己做了什么。
第一步 下载安装git
一般Mac是自带的,Windows需要安装(https://git-scm.com/downloads)
# 输入git查看是否安装成功[出现以下信息说明成功]
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
# 查看git版本
git --version
# 如果要更新git
git clone https://github.com/git/git
第二步 初始化git(本地仓库)
# open terminal (in Mac) or git_bash (in Windows)
# 新建一个目录本地存放git文件
mkdir ~/Git_Projects
cd ~/Git_Projects
# 然后初始化
git init # 会生成一个.git文件 (可以通过ls -a 查看)
第三步 将网站版Github和本地Git联系起来
它们两个需要用一个密匙连接,这把钥匙就是SSH
先在本地操作
检查本地是否存在SSH文件:ls ~/.ssh
如果不存在,使用 ssh-keygen -t rsa -C your@mail.com
【这里的邮箱是自己注册Github的邮箱】
然后会提示存放SSH的路径,默认敲回车【默认保存在~/.ssh
中】
最后会让你设置密码再核对一遍密码,就搞定了
看看生成了什么:ls ~/.ssh
,其中的id_rsa.pub
是需要用到的
less id_rsa.pub
将其中的内容复制下来,一会要用
再去Github网站
登录进去自己的账号=》右上角头像中的Setting
=》左侧栏中的SSH and GPG keys
=》New SSH key
=》Title一般就写邮箱就好,Key就把刚才复制的一段密匙粘贴到这里=》Add SSH key
最后测试
在本地终端输入ssh -T git@github.com
如果出现Hi xxx! You've successfully autheticated, …
就说明关联成功
第四步 使用VS code创建文件
我们现在已经激活了本地的git,可以使用
git status
查看当前的git状态,这是一个非常有用的命令,因为我们一般会对git进行反复的提交和修改。如果结果返回
Changes not staged for commit
说明还没有将代码加入待改动队列或者返回Changed but not updated
说明改动了本地但还没有提交给远程服务器,可以使用git add *
或者git add 指定文件名
将更新的代码加入缓冲区,准备提交; 如果出现Changes to be committed
说明我们对代码做的改动已经加入了待提交缓冲区,随时准备提交给远程服务器,然后我们就可以用git commit -m "说明下这次修改的主题"
做一个简单的测试html代码,保存为index.html文件 【这些代码你可以复制到自己的VS code中或者随意新建一个进行测试】
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Doodle Jump</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js"></script>
</head>
<body>
<h1>We're Bioinfoplanet</h1>
<h2>You are the best!</h2>
<p class="color-green"> May the force be with you! </p>
<div class="box">
<p>We have Huahua</p>
<p>And Doudou</p>
</div>
</body>
</html>
另外保存一个css文件mian.css
.color-green {
background-color: rgb(17, 112, 22);
color: rgb(255, 255, 255);
}
.box {
width: 30%;
background-color: lightblue;
}
得到的效果就是这样:
第五步 上传
# 5.1 还是先检查下状态
git status
# 5.2 编辑代码主题
git commit -m "added info of us"
# 5.3 查看修改日志
git log
# 5.4 在Github上创建一个Repository,然后得到这个repository的地址,例如:https://github.com/YOUR_NAME/YOUR_CODE.git [第一次添加需要用户名和密码]
git remote add origin https://github.com/YOUR_NAME/YOUR_CODE.git
# 5.5 然后我们就可以把自己的代码同步到Github网站的这个repository了
git push -u origin master
# 接下来就是上传
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 488 bytes | 488.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
第六步 查看修改版本的差异
一般一个代码会做不同的修改,如果创建的时候用git commit
添加了清晰地主题,那么就大大方便了日后的debug
# 先看看log日志,我们做过的改动
git log
# 会得到以下一系列的更改日志:这里可以看到做了三次更改
commit ef6c8ac7909235e1df012fc7db5a088f0b804139
Author: bioinfoplanet <xxx@mail.com>
Date: Thu Dec 13 20:23:28 2018 +0800
added class box
commit e17d59584f5d812d2cfd7d60374c83721c9bdb31
Author: bioinfoplanet <xxx@mail.com>
Date: Thu Dec 13 20:17:47 2018 +0800
Added css file
commit 7f3a7b1eb50edc316cdefe7e75e92629545cea36
Author: bioinfoplanet <xxx@mail.com>
Date: Thu Dec 13 19:28:09 2018 +0800
# 我们需要的就是commit后面的一串编号
# 比如:我想看看倒数第二次改动和最后一次改动的差别 [head就代表最后一次]
git diff e17d59584f5d812d2cfd7d60374c83721c9bdb31 head
# 可以看到黄色的是最后的改动,倒数第二次的是红色标记的,因此,如果有什么代码在修改后运行错误,就可以这样来检查
好啦,关于个人的Git配置就说这么多,另外如果要参与合作项目,需要用到git clone,其他的我还需要继续学习🧐学无止境!