Упражнение. Начало работы над проектом

Завершено

Теперь, когда вы изучили основные команды GIT, можно перейти к созданию проекта в GIT.

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

Создание и добавление (подготовка) файла

Созданный в Git каталог изначально пуст, поэтому давайте добавим в рабочее дерево файл, который будет служить домашней страницей веб-сайта с фотографиями котов.

  1. Убедитесь, что сеанс Cloud Shell все еще активен и вы находитесь в папке репозитория с именем Cats.

  2. Создайте файл с именем index.html с помощью команды touch:

    touch index.html
    

    Команда touch обновляет время последнего изменения файла, если он существует. Если файл не существует, Git создает пустой файл с таким именем.

  3. Теперь с помощью команды 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 можно настраивать более лаконично, но сейчас мы хотим проследить процесс во всех деталях.

  4. С помощью команды git add добавьте новый файл в индекс Git, а затем выполните команду git status, чтобы проверить состояние. Не забудьте поставить точку в конце команды. Она предписывает Git проиндексировать все файлы в текущем каталоге, которые были добавлены или изменены.

    git add .
    

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

    Вместо git add . можно было использовать команду git add index.html, так как index.html был единственным новым файлом в каталоге. Но если бы новых файлов было бы несколько, команда git add . распространялась бы на них всех.

  5. Наконец, снова используйте команду git status, чтобы убедиться в том, что изменения были подготовлены правильно:

    git status
    
  6. Должен отобразиться результат как в следующем примере:

    On branch main
    
    Initial commit
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
    
        new file:   index.html
    

Выполнение первой фиксации

Теперь, когда файл index.html добавлен в индекс, необходимо зафиксировать его.

  1. Чтобы создать фиксацию, используйте следующую команду:

    git commit index.html -m "Create an empty index.html file"
    

    Флаг -m в этой команде сообщает Git, чтобы вы предоставляете сообщение о фиксации.

    Формулировать сообщение о фиксации можно по-разному, но в первой строке рекомендуется описать действие, выполняемое фиксацией в дереве. Кроме того, начинают описание обычно с прописной буквы, а точку в конце не ставят для экономии места. Это можно представить так, будто первая строка сообщения завершает предложение, начинающееся с "При отправке эта фиксация выполняет..."

    Сообщение о фиксации может содержать несколько строк. Длина первой строки не должна превышать 50 символов. После нее должна быть пустая строка. Последующие строки должны содержать не более 72 символов. Это не жесткие требования, и они уходят своими корнями во времена перфокарт и простых терминалов, но они позволяют сделать выходные данные команды git log проще для восприятия.

  2. Git реагирует на того, что вы сделали, подтверждением:

    [main (root-commit) 87e874c] Create an empty index.html file
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 index.html
    
  3. Далее выполните команду git status и убедитесь в том, что рабочее дерево пусто, то есть не содержит изменений, которые не были зафиксированы.

  4. Теперь выполните команду git log, чтобы вывести сведения о фиксации:

    git log
    
  5. Ответ 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.

  1. Откройте файл index.html в веб-редакторе кода, введя команду code index.html в окне терминала:

    code index.html
    
  2. Введите или вставьте в редактор следующие операторы:

    <h1>Our Feline Friends</h1>
    
  3. Сохраните файл и закройте интерактивный редактор. Нажмите кнопку с многоточием "..." в правом углу редактора Cloud Shell или используйте сочетание клавиш (CTRL+S в Windows и Linux или CMD+S в macOS).

  4. Используйте команду git status, чтобы проверить состояние рабочего дерева.

    git status
    
  5. Вы увидите, что системе 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")
    
  6. Теперь зафиксируйте изменения:

    git commit -a -m "Add a heading to index.html"
    

    Обратите внимание, что на этот раз мы не выполняли команду git add для подготовки изменений. Вместо этого мы использовали флаг -a в команде git commit. Параметр -a добавляет все файлы, измененные с момента последней фиксации. Новые файлы не добавляются. Для добавления новых файлов по-прежнему требуется команда git add.

  7. Просмотрите выходные данные . Они должны выглядеть так, как показано в этом примере:

    [main 8c9143a] Add a heading to index.html
     1 file changed, 1 insertion(+)
    

Изменение в файле index.html было зафиксировано. Теперь в репозитории есть две версии файла, хотя вы видите только одну из них (текущую). Одним из преимуществ использования Git является то, что вы можете откатить внесенные изменения или вернуться во времени и просмотреть предыдущие версии. Подробнее об этой важной теме мы поговорим далее.