Часть 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: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@github.com/mipt22/hello_git.git
При успехе можно будет увидеть вывод примерно такого содержания:
Продвинутые пользователи вместо указания token при каждом git push чаще используют SSH-соединением, об этом можно узнать в этом туториале.
Итак, файл learn_git.py был успешно добавлен в репозиторий GitHub.
При обновлении страницы репозитория веб-сайта GitHub можно увидеть загруженный файл.
В следующей части можно будет узнать, как получить обновленную новую версию файла learn_git.py из репозитория GitHub на локальный компьютер.