此篇仅当做一个学习git的初级教程。
因之前搭建hexo+github的个人博客需要多端可以一起操作,网上搜的教程也就那样没有让我很满意。
因为学习廖雪峰老师的git教程,于此写下此篇学习记录。
安装
windows 可以直接下载git安装程序来安装
Mac os 可以通过homebrew来安装
安装完成后还要进行一步设置
$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱"
//这一步等于设置你的基本信息一般
创建版本库(repository)
版本库相当于一个仓库,这个仓库里面的东西你都可以用git进行管理。
1.找到一个地方创建一个空目录
2.命令进入这个目录,或者windows可以直接右键git base here
$ git init
我为了图方面直接用的VSCode 随便创建个文件夹拖到编辑器,直接右键‘在终端中打开’
下面这步已经初始化成功了
把文件添加到版本库
版本控制系统只能跟踪文件的修改内容,视频/音频这些只能跟踪改动的大小,如120kb->1M
当前目录创建一个reademe.txt文件现在把这个文件提交到仓库
$ git add readme.txt //第一步告诉git 把’readme.txt‘文件提交到仓库
$ git commit -m '创建readme文件' //告诉git此次提交的内容说明
//如下2张图
如何提交多个呢
$ git add 1.txt 2.txt 3.txt //也可以反复多次使用
$ git commit -m '提交三个文件'
//git add 就是将文件提交到一个临时的地方存起来(相当于买车票,一个个先上来)
//git commit 就是最后一起提交 (满员或者到点该发车了到目的地)
小结:
$ git init //初始化git仓库,知道自己要在哪个站点候车
$ git add //上车
$ git commit -m 'message' //发车
尝试修改'readme.txt'
比如,你想要看看现在即将要提交的文件跟上次文件的不同
$ git status //可以查看你准备提交的文件和上次改了多少东西
$ git diff readme.txt //查看改的具体内容
最后再进行提交
$ git add readme.txt
$ git commit -m '加了一段话'
//以上流程可以多试几次,多更新写版本
$ git status //查看仓库是否还有更改的文件需要提交的
版本回退
突然有一天服务器刚提交的代码突然出了问题,没办法赶紧回到上个版本
$ git log //查看最近的三个版本,由新到旧排列
首先我们得知道git中用 HEAD 表示版本的意思 上一个版本 HEAD^ 上上个版本HEAD^^
所以回退到上个版本
$ git reset --hard HEAD^ //这里没办法gif演示,不然会很直白
后来突然发现这个线上bug不属于我们,属于新的功能需求别的部门没有及时更新,我们还得回去前个版本
但是 git log 只有前面提交的了怎么办
因为每个版本都有个commit 2948a... 这么一串东西
只要记住这个可以根据id回去了 就好比你要回家,但是现在可以坐汽车火车,火车已经走了,那你可以选择汽车。
$ git reflog //查找每次提交的记录,找到这个
$ git reset --hard 2948a // hard 后面跟你想要的commit id 就行了
这个写的可能有点乱。也就回退版本的几条命令
小结
HEAD 表示版本,并且如何表示上个或者上上个版本
$ git log //查看最新3个版本记录
$ git reflog //查看所有的版本记录
$ git reset --hard HEAD^ //通过HEAD去上个版本或者上上个
$ git reset --hard 8b8392e //通过commit id去某个版本
Git 工作区和暂存区
先用很直白的话来表达下
工作区就是你当前工作的地方,你写代码的地方
暂存区就是之前说的 你买票上车了,但是车还没有出发
最后没有人要上车了,发车到达目的地 也就是分支
下面代码表述
$ git init //先得有个工作区,也就是车首先能够开到这让我们上去
$ git add //检票上车,等候发车
$ git commit -m 'message' //满员发车并到达目的地
//这些个过程都得有,先得有个车能够来的地方,然后等着车,然后满员发车到目的地 缺一不可
如何管理和撤销修改
$ git checkout -- //适用于没有git add 的情景 相当于进站了,但是没上车。
$ git reset HEAD // 适用于已经git add的情景,相当于上错车了,但是车还没发动,可以下车。
远程仓库(GitHub)
由于本地仓库和github仓库是ssh加密传递的
1.本地生成SSH key 如果没有
$ ssh-keygen -t rsa -C "[email protected]"
如果有了,直接打开 一般windows
苹果电脑
PS:苹果电脑查看隐藏文件夹姿势是 shift+command+ '。'
2.登录github进行 settings第三步 在Key文本框里粘贴id_rsa.pub文件的内容:
添加后就能看到了
关联本地仓库到github
点击新建一个仓库 New reopsitory
刷新github查看一波 哎~有了!复习下之前添加的命令啥的
再刷新一波github新增的文件也上去了 很舒服!
$ git push -u origin master // 第一次推送远程仓库是空的 所以多加个 -u
$ git push origin master //以后推送这样就行了
从github克隆到本地
这个也是刚刚那样,不管怎么样新建一个仓库在github上再说 勾选最下面默认创建readme文件
复制链接然后
$ git clone '上图复制的链接' //这个命令确认后下面你要输入你github的密码
//多人开发,没人都克隆就行了