hexo博客源码备份与恢复



%% 先给出要点


# 备份

git init

echo "node_modules/" > .gitignore
echo "public/" >> .gitignore
echo ".deploy_git" >> .gitignore

git checkout -b hexo

git add .
git commit -m "initial commit"

git remote add origin [email protected]:speedoops/speedoops.github.io.git
git push -u origin hexo


# 恢复

git clone -b hexo --single-branch  [email protected]:speedoops/speedoops.github.io.git
cd speedoops.github.io.git
cnpm install

git clone https://github.com/tufu9441/maupassant-hexo.git themes/maupassant



%% 再记录下详细的过程


eval `ssh-agent`
ssh-add


WARN No layout: about/index.html
原因是theme之前是单独clone的,所以备份时theme实际没有备份,重新clone取theme即可



从服务器的仓库中获取代码,和本地代码合并。(与服务器交互,从服务器上下载最新代码,等同于: Git fetch + Git merge)
从其它的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:“git pull origin master ”就是将origin这个版本库的代码更新到本地的master主分支。

git pull  username@ipaddr:远端repository名远端分支名 本地分支名。

将本地commit的代码更新到远程版本库中,例如 “git push origin”就会将本地的代码更新到名为orgin的远程版本库中。

git push  username@ipaddr:远端repository名本地分支名 远端分支名


如果我们往一个非空的目录下 clone git 项目,就会提示错误信息:

fatal: destination path '.' already exists and is not an empty directory.

解决的办法是:

1. 进入非空目录,假设是 /workdir/proj1

2. git clone --no-checkout https://git.oschina.net/NextApp/platform.git tmp

3. mv tmp/.git .   #将 tmp 目录下的 .git 目录移到当前目录

4. rmdir tmp

5. git reset --hard HEAD

然后就可以进行各种正常操作了。


git add README hello.php

git status
git status -s

git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。
  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff --cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat

$ git config --global user.name 'runoob'

$ git config --global user.email [email protected]

git commit -m '第一次版本提交'

git commit -am '修改 hello.php 文件'

git rm  --cached README   # 保留工作区文件

git rm hello.php  # 同时删除本地文件

你可能感兴趣的:(技术理想)