банер git 2.44
Нова версія Git 2.44 вийшла після трьох місяців розробки та містить 503 зміни порівняно з попередньою версією. Ці зміни були підготовлені у співпраці з 85 розробниками, 34 з яких брали участь у розробці вперше.
Для тих, хто не знайомий з Git, він відомий як одна з найпопулярніших, найнадійніших та найпродуктивніших систем контролю версій , що пропонує гнучкі, нелінійні інструменти розробки, засновані на розгалуженні та злиття. Щоб зберегти цілісність історії та запобігти ретроактивним змінам, Git використовує неявний хеш усієї попередньої історії в кожному коміті.
Ключові нові можливості Git 2.44
У цій новій версії Git 2.44 однією з найважливіших нових функцій є підтримка повторного використання об'єктів у кількох пакетах . Ця оптимізація дозволяє Git використовувати повторне використання об'єктів у кількох пакетах, усуваючи необхідність перепаковувати весь репозиторій в один пакет. Завдяки цьому покращенню Git може ефективніше генерувати пакети, що призводить до кращої швидкості та продуктивності під час операцій push та pull до та з віддалених репозиторіїв. Починаючи з версії 2.44, Git може обробляти повторне використання об'єктів у кількох файлах пакетів без необхідності перепаковувати репозиторій в один файл пакета.
Крім того, впровадження `git replay` пропонує ефективну альтернативу `git rebase` і може бути використане для відтворення історії на сервері без робочого дерева (простий репозиторій, який не містить робочого дерева), обробки кількох гілок одночасно, виконання операції перебазування на гілках, відмінних від тих, що наразі витягуються, або просто для пришвидшення операцій злиття. `git replay` пропонує значні покращення продуктивності, особливо в операціях злиття та перебазування на великих репозиторіях.
У Git 2.44 опцію `--autosquash` тепер можна використовувати для неінтерактивних операцій зміни бази . Ця функціональність дозволяє автоматично застосовувати коміти fixup! або squash! до відповідних місць без необхідності вручну перевіряти список справ.
Ще однією родзинкою є значний новий функціонал та покращення . Команди `git add` та `git stash` тепер підтримують атрибути шляху `:(attr:…)`, які налаштовуються аналогічно команді `git show`. Наприклад, `git add ':(attr:~binary)'` можна використовувати для додавання всіх текстових (небінарних) файлів до індексу. Крім того, було введено атрибут `builtin_objectmode` для фільтрації шляхів до файлів за правами доступу. Наприклад, `git add ':(attr:builtin_objectmode=100755)'' можна використовувати для додавання всіх виконуваних файлів до індексу.
Інші помітні зміни включають:
- Додано підтримку системи безперервної інтеграції GitLab CI.
- Додана опція «–дифф-алгоритм»До команди«git merge-file», щоб вибрати альтернативний алгоритм для оцінки відмінностей між файлами.
- Додано підтримку для оновлення маркерів OAuth у серверній частині керування обліковими даними wincred, подібно до того, як це реалізовано в bпідтверджує credential-cache та credential-libsecret.
- «git fetch» додано підтримку параметра конфігураціїfetch.all«, який буде оброблено подібно до додавання параметра «– все» у командному рядку.
- Додана опція «–ignore-other-worktrees» щоб увімкнути оновлення та перевірку гілок, які використовують інше робоче дерево. Це відновлює попередню поведінку команди «git checkout -B».
- Тепер для цього параметра можна встановити значення «правда» видалити інструкцію «Вимкніть це повідомлення за допомогою…», які займали місце на екрані під час відображення пропозицій. Це покращує взаємодію з користувачем, видаляючи непотрібні елементи з виводу команди.
- Виконання цієї команди було оптимізовано за допомогою опції «–без сортування». Раніше навіть при вказівці «– без сорту«, розташування все ще застосовувалося в алфавітному порядку. Тепер, після оптимізації, використання «– без сорту" прискоритись "git для кожного посилання» приблизно на 20% у сховищах з великою кількістю посилань.
Зрештою, якщо ви зацікавлені дізнатися більше, ви можете знайти деталі за наступним посиланням.