Introduction
00:00:00Выступающий представляется и обращает внимание на произношение своей фамилии Чакон. Он выражает желание выступить с хорошей речью перед большой аудиторией в Fosdem.
About Me (well, Scott Chacon)
00:01:06Скотт Чакон, соучредитель GitHub и автор Pro Git, представляет себя. Он делится своим опытом продвижения Git и рассказывает о своем текущем проекте, Git-клиенте под названием GitButler.
How Well Do You Know Git?
00:02:36Существует около 145 команд Git, из них 44 основные для обычных задач, таких как add, commit, push и pull. Кроме того, существуют манипуляторы для метаданных и устаревших команд, которые большинство людей не используют. Доклад посвящен обновлению знаний о существующих функциях и обсуждению новых аспектов, внедренных за последние три года.
Our Agenda
00:05:09Спикер обсудит полезные настройки, старые, но полезные новинки, нововведения за последние несколько лет, которые, возможно, остались незамеченными, большие репозитории, о которых большинство людей, возможно, не знают или которые скоро понадобятся. Кроме того, они расскажут о новых функциях GitHub, появившихся после их ухода.
Some Helpful Config Stuff
00:06:25Настройка команд Git с псевдонимами Узнайте, как настраивать команды Git с использованием псевдонимов, что позволяет создавать ярлыки для часто используемых флагов команд и параметров. Настройка глобальных псевдонимов гарантирует, что все ваши репозитории Git будут иметь одинаковые конфигурации.
Настройка конфигураций с помощью директивы Include If Откройте для себя директиву include if directory в Git config, которая позволяет устанавливать конкретные конфигурации для разных каталогов. Эта функция обеспечивает гибкость, позволяя перезаписывать адреса электронной почты и другие настройки на основе конфигураций, специфичных для каталога.
Oldies But Goodies
00:09:42Git Blame и Git Log В разделе "старые, но полезные" рассказывается об использовании Git blame для определения истории функции, включая использование диапазонов строк для получения более быстрых и понятных результатов. Также объясняется, как сделать то же самое с Git log, предоставляя представление о том, как функция объединилась.
Дополнительные опции в Git Blame В этой части обсуждаются дополнительные опции в git blame, такие как игнорирование пробелов по умолчанию, обнаружение перемещения кода с помощью '-C' и фильтрация выходных данных на основе регулярных выражений или строк с помощью '-S pickax'. Он также вводит reflog как журнал ссылок, который можно использовать для отслеживания изменений, вносимых с течением времени.
Команда "Ре-ре-ре" Команда "Re re re" объясняется как опция для запоминания разрешений конфликтов слияния, чтобы их можно было автоматически исправлять при повторном возникновении. Эта функция рекомендуется для упрощения разрешения повторяющихся конфликтов слияния во время операций перебазирования или сбора вишни.
Some New Stuff (You May Not Have Noticed)
00:16:22Новые параметры ветки Git В Git теперь есть новые опции для управления ветвями, включая "столбец тире-тире" для отображения ветвей в алфавитном порядке и "branch.sort" для сортировки ветвей по дате фиксации. Эти опции упрощают визуализацию информации о ветвях и управление ею.
Сила с командованием по аренде "Принудительно использовать с арендой" - более безопасная альтернатива принудительной отправке, предотвращающая случайную перезапись изменений, внесенных другими пользователями. Она проверяет ссылку перед отправкой и требует предварительной выборки, если ссылки не совпадают. Эта команда рекомендуется для перебазирования или внесения изменений.
Фиксации при подписании по SSH Новая функция позволяет подписывать коммиты с использованием SSH вместо GPG, предоставляя альтернативный метод безопасной проверки коммитов на таких платформах, как GitHub или GitLab. Кроме того, пользователи также могут подписывать push-запросы, но эта функция может не поддерживаться широко за пределами kernel.org.
Some Big Repo Stuff / Monorepo Stuff
00:23:48Поддержка больших репозиториев Усилия Microsoft по поддержке крупных репозиториев и монорепозиториев, особенно после перехода Windows на Git. Проблемы работы с огромными репозиториями, такие как размер Windows (3,5 миллиона файлов) по сравнению с ядром Linux (4,5 миллиона файлов). Инструменты, разработанные Microsoft, включая предварительную выборку и график фиксации.
Эволюция проекта "Скаляр" "Scalar", изначально разработанная как виртуальная файловая система для доступа к файлам по требованию, эволюционировала и была интегрирована в Git core под названием "scalar". Такие функции, как предварительная выборка данных каждый час и постепенное использование графиков фиксации, были включены в Git core.
Мониторинг файловой системы и частичное клонирование Внедрение монитора файловой системы, который отслеживает события inode для ускорения "статуса Git" в больших репозиториях; частичное клонирование позволяет выборочно загружать коммиты / деревья без больших двоичных объектов или деревьев в зависимости от конкретных потребностей
Редкий заказ для монорепозиций Концепция разреженной проверки позволяет пользователям клонировать только указанные каталоги из репозитория, упрощая работу с очень большими репозиториями за счет сокращения времени извлечения данных во время таких операций, как "Статус Git".
Some New Github Stuff
00:33:29GitHub допускает различные типы слияний, такие как коммиты слиянием, перебазирование и сквош-слияние. Вы можете применить эти стандарты, нажав кнопку слияния, и ограничить определенные типы слияний или потребовать подписанных коммитов.
GitButler
00:35:54GitButler позволяет извлекать и извлекать локальные ссылки. Он вводит виртуальные ветви, позволяя одновременно работать с несколькими ветвями без необходимости сохранять или переключать ветви. Каждая ветвь может обрабатываться отдельно для коммитов и запросов на извлечение.
End of talk
00:36:50Выступающий завершает выступление и выражает благодарность. Они предлагают выпить.
Start of Q&A Session
00:37:03Спикер открывает слово для сессии вопросов и ответов, позволяя аудитории задавать вопросы и участвовать в дискуссии.
Q: Why does GitHub not do git range diff?
00:37:06GitHub не поддерживает git range diff, поскольку он фокусируется на конкретном рабочем процессе и инструментах, связанных с ним. Платформа направлена на упрощение взаимодействия с пользователем, избегая ненужных функций для рабочих процессов, которые используются реже.
Q: Why do submodules suck everywhere?
00:38:28Подмодули широко не нравятся из-за их сложности и ограничений. Многие разработчики, в том числе участвующие в проекте Git, выражают недовольство подмодулями и предпочитают альтернативные решения, такие как mono repo или управление пакетами.
Q: With SSH signing, is it possible to specify more than one key?
00:40:16SSH-подпись позволяет указать более одного ключа для подписи или верификации. При подписании коммита вам необходимо выбрать один ключ для подписи, но можно указать несколько ключей.
Q: Why can't --force-with-lease be the default force?
00:40:42Речь идет о том, почему --force-with-lease не может быть принудительным по умолчанию в Git. Докладчик объясняет, что Git отдает приоритет обратной совместимости, гарантируя, что скрипты, написанные 19 лет назад, по-прежнему работают с текущей версией Git. В них упоминается добавление новых команд для улучшения пользовательского интерфейса и предлагается настроить значения по умолчанию с помощью псевдонимов или параметров командной строки.
Q: If you were back on the Git development team, what direction would you like to see it move in?
00:42:33Докладчик обсуждает желаемое направление развития Git, подчеркивая необходимость таких функций, как одновременная работа с несколькими ветвями и запись всех действий для предотвращения потери данных. Основное внимание уделяется расширению возможностей контроля версий, выходящих за рамки традиционного использования.
Q: We all love the Git CLI - but do you ever use any visual tools?
00:44:58Многие разработчики используют визуальные инструменты наряду с интерфейсом командной строки для Git. Докладчик лично использует GitButler и Visual Studio code с привязками клавиш VIM, что позволяет быстрее находить графические интерфейсы для интерактивного добавления. Однако командная строка по-прежнему предпочтительнее из-за ее скорости в большинстве задач.
That's all folks!
00:46:41Выражаем благодарность и заканчиваем разговор на позитивной ноте.