Часть 4. Git add, Git commit и Git push
При внесении каких-либо изменений в локальный репозиторий, такие изменения не влияют на основной репозиторий GitHub. Чтобы отправить эти изменения в основной репозиторий GitHub, необходимо выполнить несколько шагов.
Но прежде чем переходить к таким шагам, важно понять разницу между рабочей директорией (working directory) и локальным репозиторием (local repository).
Что такое рабочая директория?
Рабочая директория — это просто директория, содержащая файлы проекта, и эти файлы не отслеживаются Git. Для того, чтобы Git начал отслеживать такие файлы, необходимо использовать команду git add
.
Команда git add
добавляет файл из рабочей директории в промежуточную область (staging area).
Затем используется команда git commit
для сохранения изменений из промежуточной области в локальный репозиторий.
Промежуточная область — это область, в которой файл ожидает фиксации в виде коммита (commit). В этой области файл отслеживается и проверяется Git на предмет внесенных в него изменений.
Для того, чтобы посмотреть как это работает на практике, необходимо создать простой файл, например скрипт на python
(learn_git.py
) и сохранить его в директории hello_git
.
Для создания файла необходимо в терминале выполнить команду:
Для редактирования файла можно использовать текстовый редактор nano
или любой другой, в котором удобно и комфортно работать, в случае с nano
для перехода в режим редактирования можно выполнить команду:
Можно написать любой код, например для вывода серии Фибоначчи до числа n
:
Для того, чтобы увидеть статус файла в системе Git можно выполнить команду git status
и увидеть вывод:
Чтобы добавить learn_git.py
в репозиторий GitHub, необходимо выполнить три шага:
Шаг 1:
Используем команду git add
, чтобы добавить файл из рабочей директории в промежуточную область. Синтаксис: git add <file_name>
Для этого необходимо на локальном компьютере открыть терминал (командную строку), перейти в директорию hello_git.
Далее необходимо ввести команду:
Если повторить команду git status
, можно увидеть вывод:
Шаг 2:
Для сохранения изменений из промежуточной области в локальный репозиторий необходимо использовать команду git commit
.
Синтаксис: git commit -m "commit message"
commit message
может содержать простое сообщение о том, какие изменения были внесены в файл.
git commit -m "Add file: learn_git.py"
learn_git.py
успешно добавлен в локальный репозиторий. Если повторить команду git status
, можно увидеть вывод:
Шаг 3:
Для отправки изменений из локального репозитория в основной репозиторий GitHub необходимо использовать команду:
Однако при попытке запушить, можно увидеть сообщения:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
Поэтому необходимо использовать токен, который был сгенерирован ранее в части 2.2.
Синтаксис пуша с применением токена:
git push https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git
Команда с заполненными данными будет выглядеть следующим образом:
git push https://mipt22:[email protected]/mipt22/hello_git.git
При успехе можно будет увидеть вывод примерно такого содержания:
Продвинутые пользователи вместо указания token
при каждом git push
чаще используют SSH-соединением, об этом можно узнать в этом туториале.
Итак, файл learn_git.py
был успешно добавлен в репозиторий GitHub.
При обновлении страницы репозитория веб-сайта GitHub можно увидеть загруженный файл.
В следующей части можно будет узнать, как получить обновленную новую версию файла learn_git.py
из репозитория GitHub на локальный компьютер.