Skip to content

Latest commit

 

History

History
107 lines (79 loc) · 10 KB

File metadata and controls

107 lines (79 loc) · 10 KB

git

git — это одна из многих систем контроля версий. В реальной жизни все более-менее сложные программы разрабатываются в течении длительного времени, и претерпевают различные модификации и улучшения, поэтому становится удобным хранить где-то историю развития кода.

С технической точки зрения, git — распределенная система хранения, поэтому вся история проекта хранится в каждой локальной копии. Технически, хранение реализовано в скрытой директории .git, которая содержит в себе набор файлов в определенном формате, который понятен программе git. Об этих файлах можно думать как о наборе архивов, каждый из которых хранит определенную версию из истории рабочей директории проекта.

Вызовы команды git, или операции с графическим клиентом выполняют модификации файлов в этой директории .git.

Основные команды

init

Создает новый пустой репозиторий в текущей пустой директории.

git init

Технически, команда создает .git и заполняет её нужными служебными файлами для успешной работы других команд.

add, rm, commit

Каждая запись об отдельном состоянии текущей директории проекта называется слепком, снимком, или коммитом (commit). Такая запись состоит из текстового сообщения (commit message) и копии всех известных файлов проекта. Технически, хранение организовано эффективно, так что копии не измененных файлов не занимают дополнительного места.

Запись изменений в репозиторий состоит из двух этапов. Первый этап — подготовка. На этом этапе нужно пометить все измененные файлы, которые вы хотите включить в новых слепок. Это делается командой git add:

git add file.txt file2.txt

Содержимое файлов не помеченных командой git add будет взято из предыдущего коммита, а не из рабочей директории. Если нужно удалить файл из репозитория используется команда

git rm file3.txt

Второй этап — непосредственно создание нового коммита, производится командой

git commit

По умолчанию, эта команда запустит текстовый редактор и предложит заполнить сообщение описывающее сделанные изменения. Это сообщение нужно для вас или ваших коллег, на случай если они через длительное время будут вынуждены вспоминать, что это и зачем.

По сложившейся традиции сообщения коммитов записываются в следующем формате, разделенным пустой строкой:

Заголовок сообщения в одну строку

Детальный текст описания
В несколько строк.

log

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

git log

Нажмите q, чтобы выйти из режима просмотра истории коммитов.

clone, pull, push

Для того чтобы обмениваться репозиториями между разными компьютерами существует несколько основных команд. Команда git clone в полном соответствии с названием клонирует удаленный репозиторий, если известен его URL. В отличии от команды git init, git clone создаст в текущей директории новую директорию, целиком скопирует по сети внутрь новой директории служебную директорию .git и распакует оттуда последнее состояние всех файлов.

git clone https://github.com/pyoadfe/seminars

Если у нас уже есть рабочая директория, склонированная ранее и мы хотим получить новые изменения, то используется команда

git pull

А если был сделан один или несколько коммитов, отсутствующих на удаленной стороне, то для передачи используется команда

git push

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

Кроме того, следует быть готовым что обычно использование этих команд предполагает проверку ваших прав доступа, т.е. логин/пароль. Было бы странно если бы любой мог записать свои изменения в любой git репозиторий в интернете.

Краткая инструкция по выживанию в Vim

Vim является одним из наиболее популярных консольных текстовых редакторов в Unix-подобных операционных системах. В нем, в частности, сейчас набираются эти строки. Основная проблема связана с тем, что по сложившейся традиции vim предоставляется как редактор по умолчанию во многих операционных системах. Поэтому git commit на не настроенной системе с большой долей вероятности запустит этот редактор. В то время как порог вхождения в сам редактор достаточно высок, особенно для неподготовленного пользователя Windows. Основное правило для новичка при взаимодействии с редактором Vim сформулировано на обложке «Путеводителя для путешествующих по галактике автостопом»: "don't panic".

В случае столкновения с Vim в дикой природе полезно помнить следующую шутку: «vim работает в нескольких разных режимах, причем в зависимости от режима одни и те же действия имеют разный эффект. В одном из режимов vim пищит, а в другом — всё портит.» В действительности режимов больше чем два, но два из них основные. Первый — так называемый нормальный (normal), или командный, в нем нажатия на кнопки воспринимаются как команды. Так, например, w передвинет курсор ввода в начало следующего слова, а двойное нажатие на d удалит текущую строку целиком.

Нажатие на i переводит редактор во второй режим — режим вставки (insert), или редактирования. В этом режиме нажатия на кнопки приводят к изменению содержания документа и редактор становится похож на традиционный текстовый редактор.

Чтобы вернуться в нормальный режим нужно нажать Esc или Ctrl+[. В нормальном режиме доступна командная строка Vim. Нужно нажать : (не забудьте зажать shift) и на самой нижней строке редактора появится символ : а все следующие нажатия на клавиши приведут к появлению их в нижней строке (командной). Команда выполняется по нажатию клавиши Enter. Жизненно важно знать две самые главные команды: :wq — сохранить файл и выйти, :q! — выйти и не сохранять файл.

Список литературы