--- title: "Git: основные команды" category: Программирование tags: программирование, git summary: monofontoptions: - Scale=0.8 ... Установка git: ```sh sudo apt-get install git ``` Инициализация репозитория в каталоге `dir`: ```sh git init dir ``` Клонирование репозитория `repo`, принадлежащего пользователю `user`, с сервера `gitlab.2` в каталог `dir`: ```sh git clone git@gitlab.2:user/repo.git dir ``` Файлы в рабочем каталоге могут отслеживаться системой контроля версий (tracked) или нет (untracked). Отслеживаемые файлы, которые на диаграмме обозначены зелёным фоном, могут быть неизменёнными (unmodified), изменёнными (modified) или подготовленными к фиксации (staged). ```plantuml @startuml participant untracked as "Неотслеживамые\n(untracked)" participant unmodified as "Неизменённые\n(unmodified)" #99FF99 participant modified as "Изменённые\n(modified)" #77FF77 participant staged as "Подготовленные к фиксации\n(staged)" #55FF55 untracked -> staged : git add unmodified -> modified : редактирование modified -> staged : git add staged -> unmodified : git commit modified -> untracked: git rm --cached unmodified -> untracked: git rm --cached staged -> untracked: git rm --cached @enduml ``` Просмотр состояния рабочего каталога и репозитория: ```sh git status ``` Краткая форма вывода состояния: ```sh git status -s ``` Добавление файла `README.md` под версионный контроль и подготовка к фиксации: ```sh git add README.md ``` Удаление файла `README.md` из индекса репозитория: ```sh git rm --cached README.md ``` Зафиксировать файлы, подготовленные к фиксации: ```sh git commit ``` Зафиксировать все отслеживаемые файлы, которые были изменены: ```sh git commit -a ``` Отправить все ветки репозитория на сервер с меткой `origin`: ```sh git push origin ```