你的写作值得一个更好的家
2019 年,一位作家差点失去她一生的心血——唯一的手稿副本保存在一个 U 盘里。那个 U 盘丢了。
这个故事触目惊心,但它并不罕见。我们大多数人的写作都以某种脆弱的方式存在着:一个 Google Doc、一个 Notion 页面、一个 Dropbox 文件夹里名字越来越长的文件——定稿_v3_最终版_真的最终.docx。
"那个 U 盘消失了,一部小说也随之消失。这不仅仅是备份问题——这是关于我们如何对待自己工作的根本态度问题。"
— Theena Kumaragurunathan,《Git 不只是给开发者的》软件工程师早就解决了这个问题。他们用 Git——一种版本控制系统。它记录每一次变化,允许你随时回到任何一个过去的时刻,让协作变得有序而非混乱。
问题是:没有人告诉写内容创作者们 Git 也适合他们。
你现在的痛点,Git 都能解决
❌ 现在的问题
• 文件名混乱,无法判断哪个是最新版
• 删掉一段后悔了,但找不回来
• 与编辑协作时版本冲突
• 作品存放于第三方平台,受平台规则限制
• 无法追踪"这段是什么时候写的,为什么这么改"
✅ Git 之后
• 永远只有一个文件,历史清晰可查
• 任何修改都可以回退,删除不再是永久的
• 多人协作有序,改动有迹可循
• 文件存在你控制的地方
• 每次提交都记录了你的思考过程
Git 是什么?用写作者的语言来说
Git 是一个版本控制系统。它的工作很简单:追踪你的文件随时间发生的每一次变化,让你能随时回到任意一个过去的时刻。
想象你的手稿是一条河流。Google Docs 的"版本历史"就像在河边偶尔拍了几张照片——有的,但没有规律。Git 则像在河里每隔一段距离设置了一个精确的坐标点,每个点都有标注:"这里,2024年3月12日,我重写了第三章的结尾,因为觉得太仓促。"你不仅可以看照片,还可以把时间倒流回任意一个坐标。
Git 和 GitHub 是一回事吗?
很多人混淆这两个词,但它们不同:
安装在你电脑上的软件,负责追踪文件变化、管理创作历史。一个功能极其强大的本地"版本历史",可以随时回溯到任何一个过去的时刻。
在线服务,用来存储和分享你的 Git 仓库。GitHub 最出名,但不是唯一选择。如同云盘之于本地文件——你的文件在那里,但本地也有一份。
Git 不要求你懂编程。它只是一套管理文件变化的规则。你的文章、章节、笔记——只要是纯文本文件,Git 就能完美追踪。
六个核心概念,用创作者语言解释
Git 有自己的专业词汇。以下是写作者需要理解的六个最重要的概念,全部用写作的语言来解释。
一个包含你所有文件及其完整历史的文件夹。你的一本小说可以是一个仓库,你的博客文章集也可以是一个仓库。
就像游戏里的"存档"。每次你对写作做了一些有意义的改动,就创建一个提交,并写一句话描述你做了什么。"重写了第二章的开场白" 就是一个好的提交说明。
允许你在不影响"正式稿"的情况下,另开一条线索尝试全新的方向。比如:"如果用第一人称写第三章会怎样?"创建一个分支来试验,满意了再合并,不满意就丢弃。
将一个分支上的改动整合到主稿中。就像把编辑返回的修订意见应用到你的原稿里。
将一个仓库(包括全部历史)复制到你的本地电脑。就像从云端下载你的完整写作档案,可以在新电脑上接着写。
Push:把本地最新的改动上传到 GitHub。Pull:从 GitHub 下载别人(或你自己在另一台设备上)做的最新改动。
从零开始:你的第一个写作仓库
以下步骤假设你是全新的开始。我们会先用命令行建立基础,然后在下一节介绍图形界面工具(鼠标点击,无需命令行)。
写在前面:命令行看起来吓人,但你只需要记住五到六条命令。如果你更喜欢图形界面,完全可以跳过这一节,直接去看"图形界面工具"部分。
安装 Git
访问 git-scm.com,下载适合你系统(Windows / macOS / Linux)的安装包,按提示安装即可。macOS 用户也可以通过 Homebrew 安装:
告诉 Git 你是谁
只需要做一次。Git 需要知道你的名字和邮箱,这些信息会出现在每次提交记录里:
git config --global user.email "你的邮箱@example.com"
为你的项目创建仓库
进入你的写作文件夹,然后初始化一个 Git 仓库:
git init
# 此文件夹现在被 Git 管理了
做你的第一次提交
把所有现有文件加入追踪,并创建第一个存档点:
# "." 表示添加当前文件夹里的所有文件
git commit -m "初始提交:项目开始"
# 引号里是你对这次改动的描述
恭喜,你的第一个存档点创建成功了。
连接到 GitHub(可选,但推荐)
在 github.com 注册账号,创建一个新的仓库,然后将本地项目连接上去:
git push -u origin main
# 此后你的写作就有了云端备份
写作者的日常 Git 工作流
掌握 Git 之后,你的日常写作节奏只需要三个动作:写作 → 提交 → 同步。
什么时候该提交?
没有严格规定,但以下是一些好的触发时机:
• 完成了一个完整的章节或段落
• 做了一次大的结构调整
• 删除了一段文字(提交后删除不再是永久的)
• 今天的写作结束,准备关电脑
• 在尝试一个新方向之前(先提交,再实验)
如何写好提交说明?
❌ 不好的提交说明
git commit -m "修改了一些东西"
git commit -m "asdfjkl"
✅ 好的提交说明
git commit -m "删去了2000字的支线,暂存备用"
git commit -m "调整了第一章时间线,修正逻辑漏洞"
如何查看历史记录?
# 简洁地显示所有提交历史
如何回到过去某个版本?
# 找到你想回去的那个提交,复制它的 ID(例如 a3f9c12)
git checkout a3f9c12 -- 第三章.md
# 这会将"第三章.md"恢复到那个版本,其他文件不受影响
不用命令行?这些图形工具为你准备
命令行不是使用 Git 的唯一方式。以下这些图形界面工具让你用鼠标就能完成所有操作,对写作者尤其友好:
GitHub 官方出品,界面简洁直观。提交、推送、拉取、查看历史,全部鼠标操作。最推荐的入门工具。
可视化展示分支树状图,让"平行草稿"的概念一目了然。适合喜欢视觉化管理的创作者。
如果你用 VS Code 写作,它内置了 Git 界面。写完直接在编辑器里提交,无需切换应用。
Atlassian 出品,功能强大,适合想要更多控制权的创作者。可视化提交树和分支管理清晰易懂。
如果你用 Obsidian 做笔记和写作,这个插件可以让你的整个 Vault 自动由 Git 管理,完全无感。
这些编辑器将 Markdown 文件渲染得像 Word 文档一样漂亮,同时保持纯文本底层,与 Git 完美配合。
为什么要用纯文本?Markdown 速成
"纯文本是最不性感、也最重要的数字基础设施。选择用纯文本写作,是一个关于记忆与权力的政治选择,不仅仅是文件格式的偏好。"
— Theena KumaragurunathanGit 可以追踪任何文件,但它对纯文本文件(.txt, .md)的追踪效果最完美——它可以精确显示哪一行哪个字被改了。对于 .docx 这类二进制格式,Git 只能说"这个文件变了",而无法告诉你具体改了什么。
Markdown:写作者的最佳选择
Markdown 是一种极简的纯文本格式语法。你用普通符号标注格式,写作时不会被排版打断,导出时可以变成 Word、PDF、网页等任意格式。
你这样写(纯文本)
这是一个**关于回家**的故事。
他走在*熟悉又陌生*的街道上。
> 有些地方,你离开了就再也回不去了。
---
渲染后看起来是这样
第一章:归途
这是一个关于回家的故事。
他走在熟悉又陌生的街道上。
有些地方,你离开了就再也回不去了。
推荐的文件夹结构
├── 第一章.md
├── 第二章.md
├── 第三章.md
├── 人物设定.md
├── 世界观笔记.md
├── 删减内容/
│ └── 被删的支线A.md
└── toc.md # 章节目录和写作进度
每章独立一个文件,比把整本书放在一个文件里要好得多。Git 可以精确追踪每个章节的变化,而不是把整本书视为一个整体。
与编辑、合著者协作
Git 真正改变游戏规则的场景是协作写作。告别"请看附件_最终稿_修改版(3).docx"这种噩梦。
基本协作流程
作者将仓库分享给编辑
在 GitHub 上将编辑添加为协作者,或者给他们仓库的链接(如果是公开仓库)。编辑用 git clone 下载完整项目到本地。
编辑在自己的分支上工作
编辑创建一个新分支,在上面做修改,不会影响作者的主稿:
提交修改,发起 Pull Request
编辑完成修改后,在 GitHub 上发起一个 Pull Request(PR)——本质上是在说:"我做了这些修改,请作者审阅是否接受。"
作者审阅并决定是否合并
作者可以逐行查看每处改动,留下评论,接受或拒绝特定修改,最终决定是否将编辑的修改合并到主稿中。
Pull Request 就像编辑寄回的修改稿,但不是一个新文件——而是一个精确标注了"哪里删了什么、哪里加了什么"的清单,你可以逐项决定接不接受,最终只有一份稿子存在。
精选延伸资源
以下是经过筛选的优质资源,专为非程序员写作者准备:
-
Git Isn't Just for Developers — It's FOSS 本指南的灵感来源。Theena Kumaragurunathan 以小说家视角讲述为何将写作迁移到 Git 和纯文本。
-
The Plain Person's Guide to Plain Text Social Science — Kieran Healy 社会学家 Kieran Healy 写给"普通人"的纯文本写作指南,无需编程背景。
-
Guide to Git and GitHub for Writers — Scry Group 面向内容创作者的完整 Git + GitHub 入门教程,包含 Markdown 工作流介绍。
-
How Writers Can Get Work Done Better with Git — Opensource.com 详细介绍如何用 Atom 编辑器配合 Git 进行写作,涵盖章节管理和分支使用的实际场景。
-
My Friend Git — Invisible Publishing 出版行业从业者讲述如何将 Git 应用于编辑流程和手稿管理的真实经验。
-
Git and GitHub for Writers — Udemy 课程 Udemy 上专为写作者设计的 Git 课程,不以开发者为假想受众,适合零基础学习。
-
GitHub Desktop 官方文档 图形界面 Git 客户端的官方中文文档,鼠标操作,无需命令行。
-
Markdown Guide — 入门指南 Markdown 语法最清晰的入门文档,10 分钟学会基础语法。
"版本控制让我的写作工作室变成了一台时间机器。每次提交,都是我与未来的自己之间的一次对话。"
— Theena Kumaragurunathan,小说家常用命令速查卡
git status # 查看当前状态
git add . # 暂存所有改动
git add 第三章.md # 只暂存某个文件
git commit -m "你的提交说明" # 创建存档点
git log --oneline # 查看提交历史
git diff # 查看未提交的改动
git push # 同步到 GitHub
git pull # 从 GitHub 更新
git checkout -b 新分支名 # 创建并切换到新分支
git checkout 分支名 # 切换分支
git merge 分支名 # 将某分支合并到当前分支