基本命令

本地

必备操作

基本

初始化 repository

git init

添加变动到 stage

git add <filename>

提交变动

git commit -m "some comment ..."
分支

查看分支

git branch

创建分支

git branch <name>

切换分支

git checkout <name>

创建+切换分支

git checkout -b <name>

合并某分支到当前分支

git merge <name>

删除分支

git branch -d <name>

辅助操作

查看当前仓库的状态

git status

查看文件的不同

git diff <filename>

回到哪个版本

git reset --hard commit_id

查看提交历史(图形化), 以便确定退回到哪个版本

git log --graph

重返未来

git reflog

把文件在工作区的修改全部撤销

git checkout -- <filename>

git reset HEAD 删除

git rm

高级操作

工作现场

git stash
git stash pop

分叉的历史整理成直线

git rebase

标签操作

基本操作

新建一个标签, 默认为 , 也可以指定一个 commit ID

git tag <tagename>

tag 时指定标签名, 指定描述

git tag -a <tagname> -m "describ ..."

查看所有标签

git tag
高级操作

推送一个本地标签

git push origin <tagname>

推送全部未推送过的本地标签

git push origin --tags

删除一个本地标签

git tag -d <tagname>

删除一个远程标签

git push origin :refs/tags/<tagname>

远程操作

关联一个远程库

git remote add origin git$server-name:path/repo-name.git

推送 (我们第一次推送master分支时,加上了-u参数,Git不但会把本地的 master分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远 程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令)

git push -u origin master

克隆

git clone

实践一: 博客备份

本地操作

进入到博客的根目录, 一定要记得先删除主题文件夹下的 .git/ 文件夹, 不然就会产生 submodules , 从而导致无法 commit 主题. 比如要备件 next 主题

rm -r themes/next/.git/

这时就可以初始化 git了

git init

然后添加所有的文件到 stage

git add .

检察有没有问题

git status

结果一片绿就没有问题了!

接下来提交备份

git commit -m "first backup"

想备份到和 githubpages 一个 repository , 所以要另外建一个分支, 名为 backup

git checkout -b backup

备份到 github

与 github 关联

git remote add origin git@github.com:phyer219/phyer219.github.io.git

将本地的 backup 分支推到 github

git push origin backup

备份完成!

以后每次备份都直接

git add .
git commit -m "new blog ..."
git push origin backup

即可完成备份!

恢复

备份好以后, 如果在另一台设备上(已经安装好 hexo)恢复, 首先到一个要恢复的文件夹, 然后 clone 下来 backup 分支

git clone -b backup git@github.com:phyer219/phyer219.github.io.git

执行

npm install

然后本地测试是否备份成功

hexo s

以后每次从 back up 中更新直接

git pull

即可!

Reference

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000