Клонирование репозитория, отображение, добавление файлов

Локальная подготовка Git

Перед началом работы пропишите базовые настройки Git. Запускайте bash на Windows или Терминал на MacOS: всю дальнейшую работу мы будем вести в командной строке.
В настройках укажите своё настоящее имя (вам это ещё на работе показывать) и действующий адрес электронной почты:
Скопировать кодBASH
git config --global user.name "Ваше Имя" git config --global user.email "your_email@whatever.com"

Репозиторий

Репозито́рий — место, где хранятся и поддерживаются данные проекта, чаще всего — в виде файлов, доступных для дальнейшего распространения по сети.
Через Git вы будете сдавать домашнее задание на проверку. Для этого вы склонируете репозиторий, который мы для вас создали и разместили в аккаунте Практикума на GitHub. В прошлом уроке вы форкнули этот репозиторий в свой аккаунт и можете работать с ним, как со своим.
«Клонировать репозиторий» означает создать на компьютере его копию для дальнейшей работы и синхронизации. При клонировании вы получаете не только рабочие файлы, но и историю их изменения.
Для начала подготовьте директорию, где будете хранить рабочие проекты.
Для создания директории в bash есть команда mkdir имя_папки (от англ. "make directory", «создать директорию»).
Скопировать кодBASH
# в macOS: cd ~ mkdir Dev # в Windows: cd /c mkdir Dev
Перейдите в эту папку: cd Dev
Выполните команду:
Скопировать кодBASH
git clone https://github.com/ваш-аккаунт-на-гитхабе/backend_test_homework
Этой командой вы загрузили репозиторий с удалённого сервера к себе на компьютер, в только что созданную директорию.
Перейдите в свой репозиторий:
Скопировать кодBASH
cd backend_test_homework

Работа с локальным репозиторием Git. Теория.

Версионный контроль в Git предполагает, что любой файл репозитория находится в одном из четырёх состояний:
  1. Неотслеживаемый (англ. untracked)
  2. Отслеживаемый, staged, добавленный в Staging Area (англ. «плацдарм», «временное хранилище»). Иначе в Git это называют «добавить в индекс»
  3. Изменённый (англ. modified),
  4. Боевой, на жаргоне разработчиков «закоммиченный» (англ. committed, «брошенный в бой»)
Логика работы такая: как только в репозитории появляется новый файл, он принимает состояние «неотслеживаемый». Что бы вы ни делали с этим файлом, Git проигнорирует любые изменения.
Чтобы Git обратил внимание на файл и стал учитывать изменения, нужно добавить файл в индекс. Это делается командой git add. Файл перейдет в состояние «отслеживаемый», а если после этого внести в него изменения — в состояние «изменённый».
После завершения работы с файлом его нужно «сохранить» — сообщить программе Git, что актуальное состояние файла надо запомнить. Такое сохранение выполняется командой git commit и называется коммитом. Рабочие файлы будут коммититься много раз, и позже можно будет вернуться к любой сохранённой версии.
Если вы изменяете уже существующий файл, то его состояние изменится на modified.
Задание. Исправьте ошибку в файле program.py, добавьте недостающую закрывающую скобку и сохраните файл.
image

Отображение изменений

Чтобы узнать состояние файлов в репозитории, есть команда git status (англ. status, «состояние»). Перейдите в папку с проектом и выполните команду git status. Вы увидите такое сообщение:
Скопировать кодBASH
# ввели команду для отображения состояния репозитория git status # и вот что Git сообщает в ответ On branch master No commits yet Modified files: (use "git add <file>..." to include in what will be committed) program.py nothing added to commit but untracked files present (use "git add" to track)
Git видит файлы, но они добавлены в Staging Area. Файлы в статусе modified (англ. «изменённый») выделены красным.
В скобках — замечание, что командой git add можно добавить файлы в индекс, чтобы сохранить изменения в коммите:
Скопировать кодBASH
(use "git add <file>..." to include in what will be committed)
Как и другие рекомендации git status, это совет по делу.

Добавление файлов в индекс

git add (англ. add, «добавить») — команда для добавления файлов в Staging Area, в индекс. После команды укажите имя файла, судьбу которого Git должен отслеживать: git add название_файла.
Можно добавить все неотслеживаемые файлы сразу, для этого есть опция --all (англ. all, «все»). Файлы из вложенных каталогов также добавятся в индекс:
git add --all
Опцию --all можно заменить точкой: git add .
Скопировать кодBASH
# добавили файл "program.py" git add program.py # добавили все файлы git add --all # добавили все файлы git add .
Теперь, когда вы добавили файлы на stage, проверим, как изменился репозиторий:
Скопировать кодBASH
git status On branch master No commits yet Changes to be committed: # файлы ожидают коммита (use "git rm --cached <file>..." to unstage) new file: program.py
Как видите, файл program.py добавлен в индекс и готов к коммиту. Файлы в текущей директории теперь имеют статус new file (англ. «новый файл»).
И опять совет от git status: командой git rm --cached <file> вы можете перевести файл в состояние «неотслеживаемый» (unstaged). Нет, сейчас мы этого делать не станем, но запомним, что это возможно.
Какая команда добавляет файлы в временное хранилище?