Локальная подготовка Git
Перед началом работы пропишите базовые настройки Git. Запускайте bash на Windows или Терминал на MacOS: всю дальнейшую работу мы будем вести в командной строке.В настройках укажите своё настоящее имя (вам это ещё на работе показывать) и действующий адрес электронной почты:
git config --global user.name "Ваше Имя"
git config --global user.email "your_email@whatever.com"
Репозиторий
Репозито́рий — место, где хранятся и поддерживаются данные проекта, чаще всего — в виде файлов, доступных для дальнейшего распространения по сети. «Клонировать репозиторий» означает создать на компьютере его копию для дальнейшей работы и синхронизации. При клонировании вы получаете не только рабочие файлы, но и историю их изменения.Для начала подготовьте директорию, где будете хранить рабочие проекты.
- В macOS создайте директорию
Dev
в домашней директории/Users/Имя_пользователя
. Для перехода в домашнюю директорию выполните в bash командуcd
илиcd ~
- В Windows создайте директорию
Dev
в корне любого диска. Перейдите в корень, выполнив командуcd /c
илиcd /d
, гдеc
илиd
— имя нужного диска. Если в пути к рабочей директории будет кириллица, например,C:\Пользователи\Семён Семёныч
, то в проектах может возникнуть ошибка. Лучше застраховаться и создать папкуDev
именно в корне диска.
Для создания директории в bash есть команда mkdir имя_папки
(от англ. «make directory», «создать директорию»).
# в macOS:
cd ~
mkdir Dev
# в Windows:
cd /c
mkdir Dev
Перейдите в эту папку: cd Dev
. Выполните команду:
git clone https://github.com/ваш-аккаунт-на-гитхабе/backend_test_homework
Этой командой вы загрузили репозиторий с удалённого сервера к себе на компьютер, в только что созданную директорию. Перейдите в свой репозиторий:
Скопировать кодBASHcd backend_test_homework
Работа с локальным репозиторием Git. Теория.
Версионный контроль в Git предполагает, что любой файл репозитория находится в одном из четырёх состояний:
- Неотслеживаемый (англ. untracked)
- Отслеживаемый, staged, добавленный в Staging Area (англ. «плацдарм», «временное хранилище»). Иначе в Git это называют «добавить в индекс»
- Изменённый (англ. modified),
- Боевой, на жаргоне разработчиков «закоммиченный» (англ. committed, «брошенный в бой»)
Логика работы такая: как только в репозитории появляется новый файл, он принимает состояние «неотслеживаемый». Что бы вы ни делали с этим файлом, Git проигнорирует любые изменения. Чтобы Git обратил внимание на файл и стал учитывать изменения, нужно добавить файл в индекс. Это делается командой git add
. Файл перейдет в состояние «отслеживаемый», а если после этого внести в него изменения — в состояние «изменённый». После завершения работы с файлом его нужно «сохранить» — сообщить программе Git, что актуальное состояние файла надо запомнить. Такое сохранение выполняется командой git commit
и называется коммитом. Рабочие файлы будут коммититься много раз, и позже можно будет вернуться к любой сохранённой версии. Если вы изменяете уже существующий файл, то его состояние изменится на modified.
Отображение изменений
Чтобы узнать состояние файлов в репозитории, есть команда git status (англ. status, «состояние»). Перейдите в папку с проектом и выполните команду git status
. Вы увидите такое сообщение:
# ввели команду для отображения состояния репозитория
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
можно добавить файлы в индекс, чтобы сохранить изменения в коммите:
(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 .
# добавили файл "program.py"
git add program.py
# добавили все файлы
git add --all
# добавили все файлы
git add .
Теперь, когда вы добавили файлы на stage, проверим, как изменился репозиторий:
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).