Упражнение. Начало работы над проектом
Теперь, когда вы изучили основные команды GIT, можно перейти к созданию проекта в GIT.
В следующих упражнениях вы начнете работу с Git, добавив простой HTML-файл в рабочее дерево. Затем вы внесете ряд изменений в каталог и научитесь фиксировать изменения.
Создание и добавление (подготовка) файла
Созданный в Git каталог изначально пуст, поэтому давайте добавим в рабочее дерево файл, который будет служить домашней страницей веб-сайта с фотографиями котов.
Убедитесь, что сеанс Cloud Shell все еще активен и вы находитесь в папке репозитория с именем Cats.
Создайте файл с именем index.html с помощью команды
touch
:touch index.html
Команда
touch
обновляет время последнего изменения файла, если он существует. Если файл не существует, Git создает пустой файл с таким именем.Теперь с помощью команды
git status
получите состояние рабочего дерева:git status
В ответ Git сообщает, что зафиксированных изменений нет, но каталог содержит новый файл:
No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) index.html nothing added to commit but untracked files present (use "git add" to track)
Обратите внимание, что команда
git status
предоставляет указания о том, что можно сделать дальше. Git можно настраивать более лаконично, но сейчас мы хотим проследить процесс во всех деталях.С помощью команды
git add
добавьте новый файл в индекс Git, а затем выполните командуgit status
, чтобы проверить состояние. Не забудьте поставить точку в конце команды. Она предписывает Git проиндексировать все файлы в текущем каталоге, которые были добавлены или изменены.git add .
Фиксация теперь подготовлена. Индекс Git — это промежуточная область для фиксаций. Это список всех версий файлов, которые будут включены в следующую фиксацию.
Вместо
git add .
можно было использовать командуgit add index.html
, так как index.html был единственным новым файлом в каталоге. Но если бы новых файлов было бы несколько, командаgit add .
распространялась бы на них всех.Наконец, снова используйте команду
git status
, чтобы убедиться в том, что изменения были подготовлены правильно:git status
Должен отобразиться результат как в следующем примере:
On branch main Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.html
Выполнение первой фиксации
Теперь, когда файл index.html добавлен в индекс, необходимо зафиксировать его.
Чтобы создать фиксацию, используйте следующую команду:
git commit index.html -m "Create an empty index.html file"
Флаг
-m
в этой команде сообщает Git, чтобы вы предоставляете сообщение о фиксации.Формулировать сообщение о фиксации можно по-разному, но в первой строке рекомендуется описать действие, выполняемое фиксацией в дереве. Кроме того, начинают описание обычно с прописной буквы, а точку в конце не ставят для экономии места. Это можно представить так, будто первая строка сообщения завершает предложение, начинающееся с "При отправке эта фиксация выполняет..."
Сообщение о фиксации может содержать несколько строк. Длина первой строки не должна превышать 50 символов. После нее должна быть пустая строка. Последующие строки должны содержать не более 72 символов. Это не жесткие требования, и они уходят своими корнями во времена перфокарт и простых терминалов, но они позволяют сделать выходные данные команды
git log
проще для восприятия.Git реагирует на того, что вы сделали, подтверждением:
[main (root-commit) 87e874c] Create an empty index.html file 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 index.html
Далее выполните команду
git status
и убедитесь в том, что рабочее дерево пусто, то есть не содержит изменений, которые не были зафиксированы.Теперь выполните команду
git log
, чтобы вывести сведения о фиксации:git log
Ответ Git должен быть примерно таким, как в этом примере:
commit 87e874c4aeeb3f9692ae5d9875235353708d7dd5 Author: User Name <user-name@contoso.com> Date: Fri Nov 15 20:47:05 2019 +0000 Create an empty index.html file
Изменение файла index.html и фиксация изменения
Файл index.html был создан для использования в качестве домашней страницы веб-сайта, но в настоящее время он пуст. На следующем шаге нужно добавить в него HTML-код. Для простоты мы начнем с добавления одной строки HTML во встроенном редакторе Cloud Shell.
Откройте файл index.html в веб-редакторе кода, введя команду
code index.html
в окне терминала:code index.html
Введите или вставьте в редактор следующие операторы:
<h1>Our Feline Friends</h1>
Сохраните файл и закройте интерактивный редактор. Нажмите кнопку с многоточием "..." в правом углу редактора Cloud Shell или используйте сочетание клавиш (CTRL+S в Windows и Linux или CMD+S в macOS).
Используйте команду
git status
, чтобы проверить состояние рабочего дерева.git status
Вы увидите, что системе Git известно о внесенных изменениях:
On branch main 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: index.html no changes added to commit (use "git add" and/or "git commit -a")
Теперь зафиксируйте изменения:
git commit -a -m "Add a heading to index.html"
Обратите внимание, что на этот раз мы не выполняли команду
git add
для подготовки изменений. Вместо этого мы использовали флаг-a
в командеgit commit
. Параметр-a
добавляет все файлы, измененные с момента последней фиксации. Новые файлы не добавляются. Для добавления новых файлов по-прежнему требуется командаgit add
.Просмотрите выходные данные . Они должны выглядеть так, как показано в этом примере:
[main 8c9143a] Add a heading to index.html 1 file changed, 1 insertion(+)
Изменение в файле index.html было зафиксировано. Теперь в репозитории есть две версии файла, хотя вы видите только одну из них (текущую). Одним из преимуществ использования Git является то, что вы можете откатить внесенные изменения или вернуться во времени и просмотреть предыдущие версии. Подробнее об этой важной теме мы поговорим далее.