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;

}

得到的效果就是这样:

2

第五步 上传

# 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

# 可以看到黄色的是最后的改动,倒数第二次的是红色标记的,因此,如果有什么代码在修改后运行错误,就可以这样来检查

3

好啦,关于个人的Git配置就说这么多,另外如果要参与合作项目,需要用到git clone,其他的我还需要继续学习🧐学无止境!

Yunze Liu
Yunze Liu
Bioinformatics Sharer

Co-founder of Bioinfoplanet(生信星球)

Next
Previous

Related