如何使用Git管理你的写作项目

来自菜鸟教程
跳转至:导航、​搜索

介绍

版本控制不仅仅针对代码。 它适用于您想要跟踪的任何内容,包括内容。 使用 Git 管理您的下一个写作项目,您可以同时查看多个草稿,查看这些草稿之间的差异,甚至回滚到以前的版本。 如果您愿意这样做,您可以在 GitHub 或其他中央 Git 存储库上与其他人分享您的工作。

在本教程中,您将使用 Git 来管理一个小的 Markdown 文档。 您将存储一个初始版本,提交它,进行更改,查看这些更改之间的差异,并查看以前的版本。 完成后,您将拥有一个可以应用于您自己的写作项目的工作流程。

先决条件

第 1 步 — 为您的写作项目创建工作区

要管理您的更改,您将创建一个本地 Git 存储库。 Git 存储库位于现有目录中,因此首先为您的文章创建一个新目录:

mkdir article

切换到新的article目录:

cd article

git init 命令在当前目录中创建一个新的空 Git 存储库。 现在执行该命令:

git init

您将看到以下输出,确认您的存储库已创建:

OutputInitialized empty Git repository in /Users/sammy/article/.git/

.gitignore 文件让你告诉 Git 一些文件应该被忽略。 您可以使用它来忽略文本编辑器可能创建的临时文件或操作系统文件。 例如,在 macOS 上,Finder 应用程序在目录中创建 .DS_Store 文件。 创建一个忽略它们的 .gitignore 文件:

nano .gitignore

将以下行添加到文件中:

.gitignore

# Ignore Finder files
.DS_store

第一行是注释,它将帮助您确定将来要忽略的内容。 第二行指定要忽略的文件。

保存文件并退出编辑器。

当您发现更多要忽略的文件时,打开 .gitignore 文件并为每个要忽略的文件或目录添加一个新行。

现在您的存储库已配置完毕,您可以开始工作了。

第 2 步 — 保存您的初始草稿

Git 只知道你告诉它的文件。 仅仅因为存储库所在目录中存在文件并不意味着 Git 会跟踪其更改。 您必须将文件添加到存储库,然后提交更改。

创建一个名为 article.md 的新 Markdown 文件:

nano article.md

在文件中添加一些文本:

文章.md

# How To Use Git to Manage Your Writing Project

### Introduction

Version control isn't just for code. It's for anything you want to track, including content. Using Git to manage your next writing project gives you the ability to view multiple drafts at the same time,  see differences between those drafts, and even roll back to a previous version. And if you're comfortable doing so, you can then share your work with others on GitHub or other central git repositories.

In this tutorial you'll use Git to manage a small Markdown document. You'll store an initial version, commit it, make changes, view the difference between those changes, and review the previous version. When you're done, you'll have a workflow you can apply to your own writing projects.

保存更改并退出编辑器。

git status 命令将向您显示存储库的状态。 它将向您显示需要添加哪些文件,以便 Git 可以跟踪它们。 运行此命令:

git status

你会看到这个输出:

OutputOn branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore
    article.md

nothing added to commit but untracked files present (use "git add" to track)

在输出中,Untracked files 部分显示了 Git 没有查看的文件。 这些文件需要添加到存储库中,以便 Git 可以监视它们的更改。 使用 git add 命令执行此操作:

git add .gitignore
git add article.md

现在运行 git status 以验证这些文件是否已添加:

OutputOn branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   .gitignore
    new file:   article.md

这两个文件现在都列在 Changes to be committed 部分中。 Git 知道它们,但它还没有创建工作的快照。 使用 git commit 命令执行此操作。

创建新提交时,您需要提供提交消息。 一个好的提交消息会说明您的更改是什么。 当您与他人合作时,您的提交信息越详细越好。

使用命令 git commit 提交您的更改:

git commit -m "Add gitignore file and initial version of article"

该命令的输出显示文件已提交:

Output[master (root-commit) 95fed84] Add gitignore file and initial version of article
 2 files changed, 9 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 article.md

使用 git status 命令查看存储库的状态:

git status

输出显示没有需要添加或提交的更改。

OutputOn branch master
nothing to commit, working tree clean

现在让我们看看如何处理更改。

第 3 步 — 保存修订

您已经添加了文章的初始版本。 现在您将添加更多文本,以便了解如何使用 Git 管理更改。

在编辑器中打开文章:

nano article.md

在文件末尾添加更多文本:

## Prerequisites

* Git installed on your local computer. The tutorial [How to Contribute to Open Source: Getting Started with Git](how-to-contribute-to-open-source-getting-started-with-git) walks you through installing Git and covers some background information you may find useful. 

保存文件。

使用 git status 命令查看存储库中的内容:

git status

输出显示有变化:

OutputOn branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   article.md

no changes added to commit (use "git add" and/or "git commit -a")

正如预期的那样,article.md 文件发生了变化。

使用 git diff 查看它们是什么:

git diff article.md

输出显示您添加的行:

diff --git a/article.md b/article.md
index 77b081c..ef6c301 100644
--- a/article.md
+++ b/article.md
@@ -5,3 +5,7 @@
 Version control isn't just for code. It's for anything you want to track, including content. Using Git to manage your next writing project gives you the ability to view multiple drafts at the same time,  see differences between those drafts, and even roll back to a previous version. And if you're comfortable doing so, you can then share your work with others on GitHub or other central git repositories.
 
 In this tutorial you'll use Git to manage a small Markdown document. You'll store an initial version, commit it, make changes, view the difference between those changes, and review the previous version. When you're done, you'll have a workflow you can apply to your own writing projects.
+
+## Prerequisites
+
+* Git installed on your local computer. The tutorial [How to Contribute to Open Source: Getting Started with Git](how-to-contribute-to-open-source-getting-started-with-git) walks you through installing Git and covers some background information you may find useful. 

在输出中,以加号 (+) 开头的行是您添加的行。 删除的行将显示减号 (-)。 未更改的行前面不会有这些字符。

使用 git diffgit status 是查看更改内容的有用方法。 您还可以将差异保存到文件中,以便稍后使用以下命令查看它:

git diff article.md > article_diff.diff

使用 .diff 扩展将帮助您的文本编辑器应用正确的语法突出显示。

将更改保存到存储库是一个两步过程。 首先,再次添加 article.md 文件,然后提交。 Git 希望你明确告诉它每次提交中哪些文件进入,所以即使你之前添加了文件,你也必须再次添加它。 请注意,git status 命令的输出会提醒您这一点。

添加文件,然后提交更改,提供提交消息:

git add article.md
git commit -m "add prerequisites section"

输出验证提交是否有效:

Output[master 1fbfc21] add prerequisites section
 1 file changed, 4 insertions(+)

使用 git status 查看您的存储库状态。 你会发现没有别的事可做。

git status
OutputOn branch master
nothing to commit, working tree clean

在您修改文章时继续此过程。 进行更改、验证它们、添加文件并使用详细消息提交更改。 尽可能多地或尽可能少地提交您的更改,只要您觉得舒服。 您可以在完成每个草稿之后执行提交,或者在您对文章结构进行重大修改之前执行提交。

如果您将文档草稿发送给其他人并且他们对其进行了更改,请获取他们的副本并将您的文件替换为他们的文件。 然后使用 git diff 快速查看他们所做的更改。 无论您是直接输入还是将文件替换为您从网络、电子邮件或其他地方下载的文件,Git 都会看到更改。

现在让我们看看管理文章的版本。

第 4 步 — 管理变更

有时查看文档的先前版本会很有帮助。 每当您使用 git commit 时,您都会提供有用的信息来总结您所做的事情。

git log 命令向您显示存储库的提交历史记录。 您提交的每项更改在日志中都有一个条目。

git log
Outputcommit 1fbfc2173f3cec0741e0a6b21803fbd0be511bc4
Author: Sammy Shark <sammy@digitalocean>
Date:   Thu Sep 19 16:35:41 2019 -0500

    add prerequisites section

commit 95fed849b0205c49eda994fff91ec03642d59c79
Author: Sammy Shark <sammy@digitalocean>
Date:   Thu Sep 19 16:32:34 2019 -0500

    Add gitignore file and initial version of article

每个提交都有一个特定的标识符。 您使用此编号来引用特定提交的更改。 不过,您只需要标识符的前几个字符。 git log --oneline 命令为您提供了具有较短标识符的日志的精简版本:

git log --oneline
Output1fbfc21 add prerequisites section
95fed84 Add gitignore file and initial version of article

要查看文件的初始版本,请使用 git show 和提交标识符。 您的存储库中的标识符将不同于这些示例中的标识符。

git show 95fed84 article.md

输出显示提交详细信息,以及在该提交期间发生的更改:

Outputcommit 95fed849b0205c49eda994fff91ec03642d59c79
Author: Sammy Shark <sammy@digitalocean>
Date:   Thu Sep 19 16:32:34 2019 -0500

    Add gitignore file and initial version of article

diff --git a/article.md b/article.md
new file mode 100644
index 0000000..77b081c
--- /dev/null
+++ b/article.md
@@ -0,0 +1,7 @@
+# How To Use Git to Manage Your Writing Project
+
+### Introduction
+
+Version control isn't just for code. It's for anything you want to track, including content. Using Git to manage your next writing project gives you the ability to view multiple drafts at the same time,  see differences between those drafts, and even roll back to a previous version. And if you're comfortable doing so, you can then share your work with others on GitHub or other central git repositories.
+
+In this tutorial you'll use Git to manage a small Markdown document. You'll store an initial version, commit it, make changes, view the difference between those changes, and review the previous version. When you're done, you'll have a workflow you can apply to your own writing projects.

要查看文件本身,请稍微修改命令。 而不是提交标识符和文件之间的空格,替换为 :./ ,如下所示:

git show 95fed84:./article.md

您将在该修订版中看到该文件的内容:

Output# How To Use Git to Manage Your Writing Project

### Introduction

Version control isn't just for code. It's for anything you want to track, including content. Using Git to manage your next writing project gives you the ability to view multiple drafts at the same time,  see differences between those drafts, and even roll back to a previous version. And if you're comfortable doing so, you can then share your work with others on GitHub or other central git repositories.

In this tutorial you'll use Git to manage a small Markdown document. You'll store an initial version, commit it, make changes, view the difference between those changes, and review the previous version. When you're done, you'll have a workflow you can apply to your own writing projects.

如果您需要其他内容,可以将该输出保存到文件中:

git show 95fed84:./article.md > old_article.md

随着您进行更多更改,您的日志将会增长,并且随着时间的推移,您将能够查看您对文章所做的所有更改。

结论

在本教程中,您使用本地 Git 存储库来跟踪您的写作项目中的更改。 您可以使用这种方法来管理单个文章、博客的所有帖子,甚至是您的下一部小说。 如果您将存储库推送到 GitHub,您可以邀请其他人帮助您编辑您的工作。