基本命令

本地

必备操作

基本

初始化 repository #+BEGIN_SRC shell git init #+END_SRC 添加变动到 stage #+BEGIN_SRC shell git add #+END_SRC 提交变动 #+BEGIN_SRC shell git commit -m "some comment ..." #+END_SRC

分支

查看分支 #+BEGIN_SRC shell git branch #+END_SRC 创建分支 #+BEGIN_SRC shell git branch #+END_SRC 切换分支 #+BEGIN_SRC shell git checkout #+END_SRC 创建+切换分支 #+BEGIN_SRC shell git checkout -b #+END_SRC 合并某分支到当前分支 #+BEGIN_SRC shell git merge #+END_SRC 删除分支 #+BEGIN_SRC shell git branch -d #+END_SRC

辅助操作

查看当前仓库的状态 #+BEGIN_SRC shell git status #+END_SRC 查看文件的不同 #+BEGIN_SRC git diff #+END_SRC 回到哪个版本 #+BEGIN_SRC shell git reset --hard commit_id #+END_SRC 查看提交历史(图形化), 以便确定退回到哪个版本 #+BEGIN_SRC shell git log --graph #+END_SRC 重返未来 #+BEGIN_SRC shell git reflog #+END_SRC 把文件在工作区的修改全部撤销 #+BEGIN_SRC shell git checkout -- #+END_SRC git reset HEAD 删除 #+BEGIN_SRC shell git rm #+END_SRC

高级操作

工作现场 #+BEGIN_SRC shell git stash #+END_SRC #+BEGIN_SRC shell git stash pop #+END_SRC 分叉的历史整理成直线 #+BEGIN_SRC shell git rebase #+END_SRC

标签操作

基本操作

新建一个标签, 默认为 , 也可以指定一个 commit ID #+BEGIN_SRC shell git tag #+END_SRC tag 时指定标签名, 指定描述 #+BEGIN_SRC shell git tag -a -m "describ ..." #+END_SRC 查看所有标签 #+BEGIN_SRC shell git tag #+END_SRC

高级操作

推送一个本地标签 #+BEGIN_SRC shell git push origin #+END_SRC 推送全部未推送过的本地标签 #+BEGIN_SRC shell git push origin --tags #+END_SRC 删除一个本地标签 #+BEGIN_SRC shell git tag -d #+END_SRC 删除一个远程标签 #+BEGIN_SRC shell git push origin :refs/tags/ #+END_SRC

远程操作

关联一个远程库 #+BEGIN_SRC shell git remote add origin git$server-name:path/repo-name.git #+END_SRC 推送 (我们第一次推送master分支时,加上了-u参数,Git不但会把本地的 master分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远 程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令) #+BEGIN_SRC shell git push -u origin master #+END_SRC 克隆 #+BEGIN_SRC shell git clone #+END_SRC

实践一: 博客备份

本地操作

进入到博客的根目录, 一定要记得先删除主题文件夹下的 .git/ 文件夹, 不然就会产生 submodules , 从而导致无法 commit 主题. 比如要备件 next 主题 #+BEGIN_SRC shell rm -r themes/next/.git/ #+END_SRC 这时就可以初始化 git了 #+BEGIN_SRC shell git init #+END_SRC 然后添加所有的文件到 stage #+BEGIN_SRC shell git add . #+END_SRC 检察有没有问题 #+BEGIN_SRC shell git status #+END_SRC 结果一片绿就没有问题了!

接下来提交备份 #+BEGIN_SRC shell git commit -m "first backup" #+END_SRC 想备份到和 githubpages 一个 repository , 所以要另外建一个分支, 名为 backup #+BEGIN_SRC shell git checkout -b backup #+END_SRC

备份到 github

与 github 关联 #+BEGIN_SRC shell git remote add origin git@github.com:phyer219/phyer219.github.io.git #+END_SRC 将本地的 backup 分支推到 github #+BEGIN_SRC shell git push origin backup #+END_SRC 备份完成!

以后每次备份都直接 #+BEGIN_SRC shell git add . git commit -m "new blog ..." git push origin backup #+END_SRC 即可完成备份!

恢复

备份好以后, 如果在另一台设备上(已经安装好 hexo)恢复, 首先到一个要恢复的文件夹, 然后 clone 下来 backup 分支 #+BEGIN_SRC shell git clone -b backup git@github.com:phyer219/phyer219.github.io.git #+END_SRC 执行 #+BEGIN_SRC shell npm install #+END_SRC 然后本地测试是否备份成功 #+BEGIN_SRC shell hexo s #+END_SRC 以后每次从 back up 中更新直接 #+BEGIN_SRC shell git pull #+END_SRC 即可!

Reference

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