git
June 6, 2022

Часть 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.

Для создания файла необходимо в терминале выполнить команду:

touch learn_git.py

Для редактирования файла можно использовать текстовый редактор nano или любой другой, в котором удобно и комфортно работать, в случае с nano для перехода в режим редактирования можно выполнить команду:

nano learn_git.py

Можно написать любой код, например для вывода серии Фибоначчи до числа n:

Для того, чтобы увидеть статус файла в системе Git можно выполнить команду git status и увидеть вывод:

Чтобы добавить learn_git.py в репозиторий GitHub, необходимо выполнить три шага:

Шаг 1:

Используем команду git add, чтобы добавить файл из рабочей директории в промежуточную область. Синтаксис: git add <file_name>

Для этого необходимо на локальном компьютере открыть терминал (командную строку), перейти в директорию hello_git. Далее необходимо ввести команду:

git add learn_git.py

Если повторить команду 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 необходимо использовать команду:

git push

Однако при попытке запушить, можно увидеть сообщения:

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 на локальный компьютер.

⬅️ | ⤴️ | ➡️