Git

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Git
Git-logo.svg
Розробник(и) Лінус Торвальдс, Джуніо Хамано
Стабільний випуск 1.9.2 (9 квітня 2014; 10 днів тому)
Операційна система POSIX
Тип Система керування версіями
Ліцензія GNU GPL
Сайт git-scm.com

Git — розподілена система керування версіями файлів та спільної роботи. Проект створив Лінус Торвальдс для управління розробкою ядра Linux, а сьогодні підтримується Джуніо Хамано (англ. Junio C. Hamano). Git є однією з найефективніших, надійних і високопродуктивних систем керування версіями, що надає гнучкі засоби нелінійної розробки, що базуються на відгалуженні і злитті гілок. Для забезпечення цілісності історії та стійкості до змін заднім числом використовуються криптографічні методи, також можлива прив'язка цифрових підписів розробників до тегів і комітів.

Прикладами проектів, що використовують Git, є ядро Linux, Android, LibreOffice, Cairo, GNU Core Utilities[1], Mesa 3D[2], Wine, багато проектів з X.org[3], XMMS2[4], GStreamer, Debian DragonFly BSD, Perl, Eclipse, GNOME, KDE, Qt, Ruby on Rails, PostgreSQL, VideoLAN, PHP, Beryl[5], One Laptop Per Child (OLPC), АБІС Koha, GNU LilyPond[6] та ELinks[7] і деякі дистрибутиви GNU/Linux (див. нижче).

Програма є вільною і випущена під ліцензією GNU GPL версії 2.

Система спроектована як набір програм, спеціально розроблених з врахуванням їхнього використання у скриптах. Це дозволяє зручно створювати спеціалізовані системи управління версіями на базі Git або користувацькі інтерфейси. Наприклад, Cogito[8] є саме таким прикладом фронтенда до репозиторіїв Git. А StGit[9] використовує Git для управління колекцією латок.

Система має ряд користувацьких інтерфейсів: наприклад, gitk та git-gui розповсюджуються з самим Git.

Віддалений доступ до репозиторіїв Git забезпечується git-демоном, SSH або HTTP сервером. TCP-сервіс git-daemon входить у дистрибутив Git і є разом з SSH найбільш поширеним і надійним методом доступу. Метод доступу HTTP, незважаючи на ряд обмежень, дуже популярний в контрольованих мережах, тому що дозволяє використання існуючих конфігурацій мережевих фільтрів.

Візуалізатори історії[ред.ред. код]

  • Gitk(gitk) проста, але перевірена і швидка програма. Написана на Tcl/Tk, розповсюджується з самим Git.
  • QGit (Sourceforge) інтерфейс написаний з використанням Qt, багато в чому схожий з gitk, але дещо відрізняється набором можливостей (Marco Costalba). В наш час[Коли?] переписується на Qt4, що спростить його портування на Microsoft Windows.
  • Giggle — варіант на Gtk+.
  • gitg — ще один інтерфейс для gtk+/GNOME
  • Git-Cola — потужний графічний інтерфейс для Git.
  • TortoiseGit — інтерфейс, реалізований як розширення для провідника Windows.
  • SourceTree — безкоштовний Git клієнт для Windows і Mac OS.

Веб-інтерфейси[ред.ред. код]

  • gitweb — написаний на Perl (англ. Kay Sievers). Більшість наведених нижче великих публічних git-репозиторіїв його й застосовує.
  • wit — написаний на Python (англ. Christian Meder)
  • gitarella — Ruby (Diego Pettenò)
  • git-php — PHP (англ. Zack Bartel)
  • cgit — написаний на C (англ. Lars Hjemli)
  • cogito — інтерфейс з командами спроектованими для користувачів звиклих до CVS та SVN (англ. Petr Baudis)
  • StGit — написана на Python система керування колекцією латок (англ. Catalin Marinas)

Обмін змінами з іншими системами управління версіями[ред.ред. код]

  • CVS — імпорт і експорт, емуляція CVS-сервера, в стандартному постачанні
  • Subversion — імпорт і експорт (частково), в стандартному постачанні
  • .tar.gz, .tar.bz2 (серії версійних файлів) — імпорт і експорт, в стандартному постачанні
  • Perforce — імпорт і експорт (частково), в стандартному постачанні і в архівах Git Mailing List
  • Mercurial — імпорт і експорт, в стандартному постачанні і за допомогою зовнішньої програми (Tailor)

Крім того, завдяки своїй структурі даних та форматам даних обміну Git дозволяє порівняно просто і ефективно реалізувати обмін даними практично зі всіма існуючими системами управлінням версіями.

Проекти, що використовують Git[ред.ред. код]

Git застосовується в багатьох проектах; можна відзначити як апстріми, так і дистрибутиви GNU/Linux:

Виноски[ред.ред. код]

Дивіться також[ред.ред. код]