Ви не ввійшли.
Сторінки: 1
Лінус Торвальдс 20 років тому зробив свій перший коміт у Git, з коментарем до нього що це: "Початкова редакція «git», менеджера інформації з пекла".
commit e83c5163316f89bfbde7d9ab23ca2e25604af290
Author: Linus Torvalds <[email protected]›
Date:
Thu Apr 7 15:13:13 2005 - 0700
Initial revision of "git", the information manager from hell
За ці 20 років Git пройшов шлях від маленького, простого, особистого проєкту до наймасовішої домінантної системи контролю версій, яку коли-небудь було створено.
Git виник через розчарування спільноти розробників ядра Linux системами контролю версій. Спільнота ядра завжди використовувала списки розсилки для співпраці. Це насправді досить захопливий метод співпраці - він надзвичайно масштабований, високо розподілений, "local first", здатний до детального обговорення патчів, криптографічно захищений тощо.
Перший коміт
Що Git міг робити з першої миті свого існування? Це був тупий трекер вмісту. Як Лінус сам висловився з першого дня:
Це тупий (але надзвичайно швидкий) менеджер вмісту каталогів. Він не робить багато чого, але те, що він робить, - ефективно відстежує вміст каталогів.
Перший коміт був набором із семи простих окремих інструментів. Це були не такі речі, як `git commit`, це були інструменти бази даних дуже низького рівня, такі як `write-tree` і `commit-tree` (це змінилося через кілька тижнів після початку проєкту, коли все почало починатися з префікса `git-`). Деякі з них перетворилися на команди "plumbing", які існують і донині, такі як `git cat-file` і `git write-tree`, інші були принципово іншими (наприклад, `git read-tree` є поточною командою Git "plumbing", але оригінальний `read-tree` був більше схожий на поточний `git ls-files`), однак, на низькому рівні концепції все ще існують.
По суті, з першим комітом Git міг:
Створити "знімок" за допомогою `update-cache`, щоб створити кеш вмісту (по суті, tarball), і `write-tree`, щоб записати його як об'єкт у базу даних.
Записати "набір змін" (commit) за допомогою `commit-tree`, який коментував зміни, внесені новим tarball, і батьківський коміт, на якому він базувався, щоб створити історію "tarballs".
Прочитати ці структури бази даних за допомогою `cat-file` (витягнути об'єкт з бази даних), `read-tree` (вивести, як виглядає кеш) і `show-diff` (показати різницю між кешем і робочим каталогом).
Але як показав час то цей тупий трекер вмісту став найпоширенішою SCM у світі.
Дякуємо Лінус!
Поза форумом
Сторінки: 1