Программирование PC Краткий справочник по Git Tue, July 23 2019  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Краткий справочник по Git Печать
Добавил(а) microsin   

Небольшая памятка по командам Git, приемы работы с локальным репозиторием.

1. Основные команды (выполненные в текущем каталоге корневой папки проекта):

Команда Функция
git init Создание репозитория в текущем каталоге.
git config user.name "имя" Ввод имени пользователя репозитория.
git config user.email "box@domain.ru" Ввод email пользователя репозитория.
git add -n * Проверка, какие файлы будут добавлены в репозиторий.
git add readme.txt Добавить в репозиторий файл readme.txt(1).
git add util/**/*.cpp Добавить все файлы *.cpp, которые находятся в папке util и её подкаталогах.
git add *.c *.h *.s *.asm Добавить в репозиторий все файлы(1) с расширениями *.c, *.h, *.s, *.asm.
git commit -m "190311 first commit" Выполнить коммит репозитория.
git status Показать состояние репозитория - какие файлы были добавлены или изменены.
git status --untracked-files=no Показать состояние репозитория без отображения файлов, которые еще не добавлены в репозиторий.
git rm --cached имяфайла Убирает из репозитория указанный файл (он больше не отслеживается). В рабочем каталоге этот файл останется.

Примечания:

(1) Если добавляемые файлы уже присутствуют в репозитории, то будут отображены изменения в этих файлах.

2. Подробная помощь по команде (откроется окно браузера со справкой):

git help команда

3. Краткая подсказка по команде:

git команда -h

4. Файл .gitignore позволяет создать список файлов, которые не нужно отслеживать. В этом файле можно делать комментарии, комментарием считается строка, которая начинается на символ #. В каждой строке указывается имя файла, который игнорируется, в именах можно использовать символы группирования * и ?. Чтобы исключить папку и файлы в ней, нужно добавить имя папки со слешем в конце, например: Debug/. Примеры файлов .gitignore см. в [4].

5. Можно создавать алиасы (синонимы) команд для быстрого доступа к ним. Вот так например, можно создать синоним git st для команды git status:

git config --global alias.st "status -s"

После этого команды git st и git status будут выполняться одинаково.

Установка выполняется по шагам с помощью обычного мастера. Однако не некоторых шагах не очевидно, какие опции выбирать.

Начальные 4 шага вопросов не вызывают. Нужно согласиться с условиями лицензии, выбрать папку для установки, поставить галочки устанавливаемых компонентов, выбрать место размещения для ярлыков запуска. Можно оставить все по умолчанию:

Git setup01

Git setup02

Git setup03

Git setup04

На этом шаге лучше всего выбрать редактор, которым Вы привыкли пользоваться. Мне нравится Notepad2:

Git setup05

На этом шаге предлагают настроить рабочее окружения для запуска Git. Первый вариант никак не модифицирует переменные окружения, подразумевается запуск Git под управлением командной строки MinGW bash. Второй и третий вариант прописывает некоторые переменные окружения (пути запуска), чтобы можно было запускать Git как из стандартного интерпретатора команд Windows, так и из MinGW bash. Я выбрал второй вариант, который задан по умолчанию:

Git setup06

Здесь выбирается библиотека, с помощью которой обслуживаются защищенные соединения. Оставил этот вариант по умолчанию:

Git setup07

Здесь выбрал вариант, который при операциях Git не модифицирует окончания строк текстовых файлов:

Git setup08

Здесь лучше оставить выбор по умолчанию. Вариант настройки MinTTY обеспечивает удобную цветовую подсветку выводимого текста в консоли:

Git setup09

Эти опции тоже луше оставить по умолчанию:

Git setup10

Git setup11

Git setup12

Как работать с Git по шагам, начиная с создания репозитория. Предполагается, что Git уже установлен.

1. Зайдите в рабочий каталог проекта, запустите сессию bash. Можно конечно пользоваться и стандартной командной строкой Windows, но MINGW64 Bash удобнее, потому что он предоставляет цветовую подсветку сообщений, и корректно поддерживает Unicode, что позволяет пользоваться русскими буквами в командах Git.

Git MINGW64 Bash window

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

git init

После этого выполните следующие команды (вместо Your Name и anyemail@domain.ru укажите любое имя и адрес электронной почты):

git config --global user.name "Your Name"
git config --global user.email "anyemail@domain.ru"

3. Выполните команду git add -n *, которая выведет список файлов, которые могут быть потенциально добавлены в репозиторий. Скорее всего, в этом списке будут некоторые файлы, изменение которых отслеживать не нужно (объектные и двоичные файлы, картинки, логи и т. п.). Если такие файлы есть, то перейдите к шагу 4, а если нужно добавить все файлы из выведенного списка, то перейдите к шагу 6.

Если проект большой, и много его файлов находится в отдельных папках, то команду проверки git add -n можно запускать на файлы только одной папки. Например, вот проверка, какие файлы будут добавляться в репозиторий из папки lib проекта:

git add -n lib

4. Создайте в текстовом редакторе файл .gitignore, после этого начните добавлять в него записи для тех файлов, которые нужно игнорировать (Git не будет их отслеживать). Начните с папок, которые находятся в каталоге проекта, папку .git обрабатывать не нужно, это служебная папка.

Внимание: чтобы можно было в файле .gitignore использовать имена файлов с русскими буквами, файл .gitignore должен быть в кодировке UTF-8.

Предположим, что есть папка bin в каталоге проекта, и в ней находятся файлы с расширениями dlb, ldr, bin, log, которые не надо добавлять в репозиторий. Тогда в файл .gitignore добавьте следующие строки:

# Что игнорировать в папке bin:
bin/*.dlb
bin/*.ldr
bin/*.bin
bin/*.log

Если в папке много подкаталогов, и Вы хотите обработать их сразу все, то можно воспользоваться группировкой /**/:

doc/**/*.bmp

Обратите внимание, что первая строка начинается на #, это просто комментарий, добавленный для удобства. Сохраните файл .gitignore и снова выполните команду git add -n *, Вы увидите, что файлы из составленного списка игнорируются.

Каждую отдельную папку можно проверять командой  git add -n имяпапки/.

5. После того, как создали список игнорируемых файлов для папки, добавьте её в репозиторий на отслеживание, для этого выполните команду git add без опции -n. Например, так добавляется папка lib:

git add lib/

Аналогичные шаги 4 и 5 проделайте со всеми папками и файлами проекта.

6. Теперь осталось сделать коммит.

git commit -m "190312 первый коммит"

Здесь опция -m задает обязательный комментарий для коммита. В комментарии я люблю указывать 6 цифрами дату коммита (YYMMDD). Имейте в виду, что русские буквы в комментарии можно указывать только в командной строке bash (он устанавливается вместе с Git).

# Что игнорировать в папке bin:
bin/*.dlb
bin/*.ldr
bin/*.bin
bin/*.zlib
bin/*.log
 
# Что игнорировать в папке bootloader:
bootloader/*.pcf
bootloader/Debug/
bootloader/Release/
 
# Все содержимое в папке deleted игнорируется:
deleted/
 
# Что игнорировать в папке doc:
doc/**/*.pdf
doc/**/*.png
doc/**/*.bmp
doc/**/*.svg
doc/**/*.zip
doc/**/*.jpg
doc/**/*.psd
doc/**/*.png
doc/**/*.xls
doc/**/*.doc
doc/**/*.docx
doc/**/*.spl7
doc/181219автовыбор-КРЛ
 
# Что игнорировать в папке lib:
lib/**/*.bak
lib/**/*.old
lib/**/*.pcf
lib/**/*.dlb
 
# Что игнорировать в папке mainapp-VDK:
mainapp-VDK/**/*.dlb
mainapp-VDK/**/*.bak
mainapp-VDK/**/*.pcf
mainapp-VDK/**/*.log
 
# Что игнорировать в папке pictures:
pictures/**/*.bmp
pictures/**/*.png
pictures/**/*.psd
pictures/**/*.old
pictures/**/*.bin
pictures/**/*.pdf
pictures/**/*.zlib
 
# Что игнорировать в папке util:
util/**/*.als
util/**/*.exe
util/**/*.dxe
util/**/*.old
util/**/*.zip
util/**/*.bmp
util/**/*.ico
util/**/*.dll
util/**/*.o
util/**/*.vsd
util/**/*.suo
util/**/*.gz
util/**/*.url
util/**/*.pfx
util/**/*.ldr
util/**/*.chm
util/calibr/Debug/
util/calibr/Release/
util/calibr/bin/Debug/
util/calibr/bin/Release/
util/calibr/obj/
util/calibr/publish/
util/zpipe-test/pack01
util/zpipe-test/src
util/visa/bin/Debug/
util/visa/bin/Release/
util/visa/publish/
util/visa/obj/

[FAQ]

001. "*** Please tell me who you are." Что это значит?

Необходимо сконфигурировать репозиторий, добавив в него имя пользователя и email. Для этого выполните следующие команды:

git config --global user.name "Your Name"
git config --global user.email "anyemail@domain.ru"

Вместо Your Name и anyemail@domain.ru подставьте свое имя и адрес электронной почты.

002. Как не включать в репозиторий определенные файлы?

Создайте файл .gitignore, поместите его в корневую папку проекта (там же, где находится папка репозитория .git), и в этом файле создайте строки, обозначающие исключаемые файлы (см. выше описание работы с файлом .gitignore).

003. В папке имеется обширное дерево подкаталогов. Как обрабатывать их все, одной маской?

Для этого используйте группировку /**/. Например, следующая запись .gitignore исключит из репозитория все файлы *.pdf, которые находятся в папке util, и во всех её подкаталогах:

util/**/*.pdf

Групповые подстановки можно также использовать и в командной строке Git.

004. Как работать с файлами, имена которых содержат русские буквы?

Файл .gitignore должен иметь кодировку UTF-8. Вместо стандартной консоли команд cmd.exe в Windows используйте командную строку MINGW64 bash (устанавливается вместе с Git).

[Словарик]

branch ветвление проекта (создание его отдельной версии в репозитории).

commit легковесный снимок состояния файлов в определенный момент времени (когда был сделан коммит).

head самая последняя версия файлов в репозитории.

repository репозиторий, база данных, где хранится история изменений проекта. Git хранит репозиторий в папке .git, которая находится в корневом каталоге проекта.

staging area область файловой системы (список файлов), подготовленная к коммиту.

stash операция, которая поглощает грязное состояние рабочего каталога, то есть изменённые отслеживаемые файлы и изменения в индексе, и сохраняет их в стек незавершённых изменений, которые вы потом в любое время можете снова применить.

[Ссылки]

1. Downloads Git site:git-scm.com.
2. Learn Git site:atlassian.com.
3. Подробное введение в работу с Git site:tproger.ru.
4. A collection of useful .gitignore templates site:github.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page