Как использовать Git для управления вашим письменным проектом

Вступление

Контроль версий не только для кода. Это для всего, что вы хотите отслеживать, включая контент. ИспользованиеGit для управления вашим следующим письменным проектом дает вам возможность просматривать несколько черновиков одновременно, видеть различия между этими черновиками и даже откатиться к предыдущей версии. И если вам это удобно, вы можете поделиться своей работой с другими в GitHub или других центральных репозиториях Git.

В этом руководстве вы будете использовать Git для управления небольшим документом Markdown. Вы сохраняете исходную версию, фиксируете ее, вносите изменения, просматриваете разницу между этими изменениями и просматриваете предыдущую версию. Когда вы закончите, у вас будет рабочий процесс, который вы сможете применить к своим собственным проектам.

Предпосылки

  • Git установлен на вашем локальном компьютере. УчебникHow to Contribute to Open Source: Getting Started with Git проведет вас через установку Git и содержит некоторую справочную информацию, которая может оказаться полезной.

[[step-1 -—- create-a-workspace-for-your-writing-project]] == Шаг 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 и добавьте новую строку для каждого файла или каталога, который вы хотите игнорировать.

Теперь, когда ваш репозиторий настроен, вы можете начать работать.

[[step-2 -—- save-your-initial-draft]] == Шаг 2 - Сохранение исходного черновика

Git знает только о тех файлах, о которых вы ему рассказали. Тот факт, что в каталоге, в котором находится хранилище, существует файл, не означает, что Git будет отслеживать его изменения. Вы должны добавить файл в хранилище и затем зафиксировать изменения.

Создайте новый файл Markdown с именемarticle.md:

nano article.md

Добавьте текст в файл:

article.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 ..." 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 ..." 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

Теперь давайте посмотрим, как работать с изменениями.

[[step-3 -—- save-revisions]] == Шаг 3 - Сохранение редакций

Вы добавили свою первоначальную версию статьи. Теперь вы добавите больше текста, чтобы увидеть, как управлять изменениями с помощью Git.

Откройте статью в вашем редакторе:

nano article.md

Добавьте еще текст в конец файла:

## Prerequisites

* Git installed on your local computer. The tutorial [How to Contribute to Open Source: Getting Started with Git](https://www.digitalocean.com/community/tutorials/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 ..." to update what will be committed)
  (use "git checkout -- ..." 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](https://www.digitalocean.com/community/tutorials/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 diff иgit status - полезный способ увидеть, что вы изменили. Вы также можете сохранить diff в файл, чтобы просмотреть его позже с помощью следующей команды:

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 увидит изменения независимо от того, напечатали ли вы их напрямую или заменили файл файлом, который вы скачали из Интернета, электронной почты или где-либо еще.

Теперь давайте посмотрим на управление версиями вашей статьи.

[[step-4 -—- manage-changes]] == Шаг 4 - Управление изменениями

Иногда полезно взглянуть на предыдущую версию документа. Каждый раз, когда вы использовалиgit commit, вы добавляли полезное сообщение, в котором резюмируется то, что вы сделали.

Командаgit log показывает историю коммитов вашего репозитория. Каждое внесенное вами изменение имеет запись в журнале.

git log
Outputcommit 1fbfc2173f3cec0741e0a6b21803fbd0be511bc4
Author: Sammy Shark 
Date:   Thu Sep 19 16:35:41 2019 -0500

    add prerequisites section

commit 95fed849b0205c49eda994fff91ec03642d59c79
Author: Sammy Shark 
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 
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, вы можете пригласить других пользователей, которые помогут вам отредактировать вашу работу.