「Git branch 实践」使用分支功能打草稿

备忘录

本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。

随意折腾!

最近意识到自己有个很不好的习惯:
博客源码 —————只修改一丁点 —→push Github —→clone Vercel ——→generate 正式网页

总觉得哪里不对……
想起之前懒得琢磨的 Git branch 操作,确有必要学习一番,遂成此文。

关于 git branch 的具体介绍建议参考1 2
本文全部操作可在 Termux 下配合 micro 文本编辑器完成。

实战

  • git branch -a
    查看本地及远程所有分支:
    * master
    remotes/origin/HEAD -> origin/master
    remotes/origin/master

在 “草稿” 分支下工作(draft)

  • git checkout -b draft
    创建 draft 分支,然后切换到 draft 分支:

    Switched to branch 'draft'

    注意看原来的 “master” 标头已经变成了 “draft”
    hexo clean&&hexo g&&hexo s 方便后续预览。

  • cd Blog/py.loafing/source/_posts 进入 post 文件夹
    ls 查看当前所有文章
    micro 文件名.md 打开某篇文章进行修改

    示例

    Screenshot

    编辑过程中随时打开 http://127.0.0.1:4000/ 进行预览。
    Ctrl+S 保存文档,Ctrl+Q 退出编辑。

  • ⚠ 提交修改

    git add .
    git commit -m "暂存草稿 - 小金刚"
  • 推送至远程(可选)

    git push origin draft 推送至远程
    git branch -a 可见远程仓库已经同步了刚才的草稿分支:

    * draft
    master
    remotes/origin/HEAD -> origin/master
    remotes/origin/draft
    remotes/origin/master

回到主分支(master)

  • git checkout master

    此时的 master 分支要落后于 draft 分支
    所以我们需要把刚才打好的草稿 draft “正式合并” 到主分支 master

  • git merge draft
    万一有冲突,无法合并,检查文件进行修改即可。

    点击展开

    冲突文件内有非常醒目的

    <<<<<<< HEAD
    =======
    >>>>>>> [other/branch/name]

    手动修改,保留想要的部分。
    完成后必须使用 git add .git commit -m "解决冲突" 提交保存,否则 git merge 依然报错。(git mergetool 没用过)
    Screenshot

正式发布(更新博客)

在 master 分支下做完最后的检查工作,确认无误后,按照常规操作 push
git add .&&git commit -m "博客更新-🎉(小金刚)"&&git push origin master

后续

更换设备后,git clone 或者 git fetch 从远程获取仓库资源,本地默认只有 master 分支。
要拉取远程指定分支至本地:
git checkout -b 本地分支名 origin/远程分支名

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。