Git |
Автор: admin Просмотров: 3574 Комментарии:
Добавлен: 30 апреля 2016
Обновлено: 20.05.2016 - 13:44
Git - распределенная система управления версиями файлов и совместной работы. Проект создал Линус Торвальдс для управления разработкой ядра GNU/Linux, а сегодня поддерживается Джуния Хамани ( англ. Junio C. Hamano ). Git является одной из самых эффективных, надежных и высокопроизводительных систем управления версиями, что предоставляет гибкие средства нелинейной разработки, основанные на ответвлении и слиянии ветвей. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются криптографические методы, также возможна привязка цифровых подписей разработчиков к тегам и комитам.
Примеры проектов, использующих Git
Android, LibreOffice, Cairo, GNU Core Utilities, Mesa 3D, Wine, много проектов X.org, XMMS2, GStreamer, Debian DragonFly BSD, Perl, Eclipse, GNOME, KDE, Qt, Ruby on Rails, PostgreSQL, VideoLAN, PHP, Beryl, One Laptop Per Child (OLPC), АБиС Koha, GNU LilyPond и ELinks.
Система спроектирована как набор программ, специально разработанных с учетом их использования в скриптах. Это позволяет удобно создавать специализированные системы управления версиями на базе Git или пользовательские интерфейсы. Например, Cogito является именно таким примером фронтенда к репозиториям Git. А StGit использует Git для управления коллекцией патчей.
Система имеет ряд пользовательских интерфейсов: например, gitk и git-gui распространяемых с самим Git.
Удаленный доступ к репозиториям Git обеспечивается демоном git, SSH или HTTP сервером. TCP сервис git-daemon входит в дистрибутив Git и является наряду с SSH распространенным и надежным методом доступа. Метод доступа HTTP, несмотря на ряд ограничений, очень популярен в контролируемых сетях, потому что позволяет использование существующих конфигураций сетевых фильтров.
Принцип работы Git
Сохранение файлов
Git, в отличие от Subversion и ей подобным системам, не хранит информацию в списке изменений (патчей) для файлов. Вместо этого Git сохраняет данные набором слепков. Каждый раз при фиксации текущей версии проекта Git сохраняет слепок того, как выглядят все файлы проекта. Но если файл не менялся, то дается ссылка на ранее сохраненный файл. Git похож на своеобразную файловую систему с инструментами, которые работают поверх нее. Для каждого отслеживаемого файла, Git сохраняет размер, время создания и последнего изменения. Эти данные хранятся в файле index, который находится в папке .git Вся база данных Git сохраняется в папке с названием .git
В Git, файлы могут находиться в одном из 3-х состояний: зафиксированном (файл уже сохранен в локальной базе данных), измененном (файл был изменен, но изменения не зафиксировано) и подготовленном (файлы были изменены и отмечено для фиксации).
Локальные операции
Большинство действий можно выполнять на локальной файловой системе без использования интернет подключения. Вся история изменений сохраняется локально и при необходимости выгружается в удаленный репозиторий. В отличие от Subversion, где без подключения к интернету можно только редактировать файлы, но сохранить изменения в вашу базу данных невозможно (поскольку она отключена от репозитория). Любой комит сначала делается локально, а затем выгружается в удаленный репозиторий.
Целостность данных
В своей базе Git сохраняет все по хэшам файлов. В качестве хеширующей функции используется SHA-1. Перед каждым сохранением файлов, Git вычисляет SHA-1 хеш файла и полученный хэш становится индексом файла в Git. Используя хэш, Git легко отслеживает изменения в файлах.
Ветвления (ветви)
Ветвления - это разграничение от основной линии разработки. Git позволяет создать несколько ветвей и переключаться между ними. Это полезно, поскольку позволяет работать нескольким разработчикам над своим функционалом не мешая другим и не портя основу ветку. По умолчанию Git создает ветку под названием master. Ветка в Git просто представляет собой указатель на одну из фиксаций. При каждой новой фиксации, ветвь в Git движется автоматически (то есть переключается на фиксацию). Ветка является простым файлом, который содержит 40 символов контрольной суммы SHA-1 фиксации. Создание новой ветки очень быстрое, поскольку это все равно записи в файл 41 байта (40 символов + символ новой строки).
Сливание и преобразование данных
Git поддерживает два способа для интеграции изменений с ветки в ветку: merge (сливание) и rebase (перебазирование). Основная разница заключается в том, что rebase запоминает фиксации в виде патчей, перематывает ветку и применяет патчи в виде фиксаций в отличие от merge, который сливает две ветви в одну.
Визуализаторы истории
Gitk (gitk) — простая, но проверенная и быстрая программа. Написанная на Tcl/Tk, распространяется с самим Git.
QGit — интерфейс написан с использованием Qt, во многом схож с gitk, но несколько отличается набором возможностей (Marco Costalba). В наше время переписывается на Qt4, что упростит его портирование на Microsoft Windows.
Giggle — вариант на Gtk + .
gitg — еще один интерфейс для gtk + / GNOME
Git-Cola — мощный графический интерфейс для Git.
TortoiseGit — интерфейс, реализованный как расширение для проводника Windows .
SourceTree - бесплатный Git клиент для Windows и Mac OS.
https://uk.wikipedia.org/wiki/Git
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Системы управления версиями, GIT
Комментарии |