Git - одна из наиболее широко используемых распределенных систем управления версиями, описанная разработчиками по всему миру как служба VCS номер один. Он работает только с терминала, но доступно несколько загрузок.
Это бесплатное приложение с открытым исходным кодом для управления версиями, которое может обрабатывать как крупные, так и небольшие проекты с максимальной эффективностью и скоростью. Программа может быть легко описана как маленькая, быстрая и распределенная.
Параметры командной строки
Программа поставляется с несколькими командами, которые можно легко запомнить любым пользователям с самого начала. Все операции выполняются локально и были разработаны для работы с ядром Linux.
Включенные команды: add, bisect, branch, checkout, clone, commit, diff, fetch, grep, init, log, merge, mv, pull, push, rebase, reset, rm, show, status и tag. Вы можете легко узнать, что делает каждая команда, запустив команду git -help из окна терминала.
Особенности с первого взгляда
При использовании Git пользователи смогут добавлять файлы, контрольные ветви или пути, клонировать репозитории, создавать пустые репозитории Git, объединяться с несколькими историями развития, отображать состояние рабочего дерева, записывать изменения, а также создавать, удалить ветви.
Кроме того, приложение позволяет пользователям просматривать изменения между коммитами и рабочими деревьями, печатать строки, соответствующие шаблону, просматривать журналы фиксации, загружать ссылки и объекты, переименовывать или перемещать файлы, символические ссылки и каталоги, обновлять удаленные ссылки и удалять файлов из рабочего дерева.
Существуют различные графические интерфейсы
Даже если это программное обеспечение с командной строкой, доступны различные графические пользовательские интерфейсы (GUI), включая git-cola, SmartGit, GitEye, хихикать и gitg. Проект превзойдет утилиты SCM (Software Configuration Management), такие как CVS, Subversion, ClearCase и Perforce, благодаря дешевому локальному ветвлению, нескольким рабочим процессам и удобной промежуточной области.
Нижняя линия
Подводя итог, Git - это бесплатная система управления версиями, которая обладает быстродействующей быстротой, ее легко освоить и имеет очень малую площадь. С Git вы можете выполнять трансляцию контекста без трения, ролевые кодовые строки, технологический процесс на основе функций и одноразовые эксперименты.
Что нового в этой версии:
- Вспомогательная функция для чтения целой строки в strbuf ошибочно вызвала ошибку OOM при EOF при определенных условиях, которая была исправлена.
- В дополнение к "cc: # cruft", "cc: a@dd.re.ss # cruft" был обучен «git send-email». как действительный способ сказать ему, что ему также необходимо отправить копию с копией в раздел трейлера.
- Исправить регрессию до "gitk -bisect" по недавнему обновлению.
- В отличие от git commit-tree & lt; файл & quot ;, "git commit-tree -F file & quot; не передал содержимое файла дословно и вместо этого завершил неполную строку в конце, если существует. Последний был обновлен, чтобы соответствовать поведению первого.
- "git archive", особенно при использовании с pathspec, хранит пустую директорию в своем выпуске, хотя Git сама по себе этого не делает. Это было исправлено.
- Проверка ошибок API, которая также вызывает шумоподавление от GCC.
- & gt; git gc & quot; пытается избежать одновременного запуска двух экземпляров путем чтения и записи pid / host из файла блокировки; он использовал для чтения неправильный формат fscanf (), который был исправлен.
- Испытуемый linter был изучен, что нам не нравится «echo -e».
- Код cmp.std.c nitpick.
- & quot; git describe --match & quot; научился брать несколько шаблонов в серии v2.13, но функция игнорировала шаблоны после первого и вообще не работала. Это было исправлено.
- & quot; git cat-file -textconv & quot; недавно начался segfault, который был исправлен.
- Встроенный шаблон для обнаружения "заголовка функции" для HTML не совпадают. Элементы без каких-либо атрибутов, которые были исправлены.
- & quot; git mailinfo & quot; был свободен в декодировании, цитируемый для печати, и произвел мусор, когда две буквы после знака равенства не являются шестнадцатеричными. Это было исправлено.
- Документация для «-X» для слияний была введена в заблуждение, чтобы предположить, что «-sss» существует, что не так.
- Запишите имя нашей системы как «Git». в выводе из скрипта request-pull.
- Исправления для небольших проблем с доступом к памяти, идентифицированных valgrind.
- Возвращает моральный эквивалент 2015 года для эмуляции опроса от восходящего гнулиба, чтобы исправить случайные поломки на HPE NonStop.
- В формате "- format = ... & quot; вариант "git for-each-ref" команду (и ее друзей, то есть режим листинга «ветвь / метка git»), «% (атом:)», (например, «% (refname:)», «% (body:)», используемые для отказа. Вместо этого обрабатывайте их так, как если бы двоеточие и пустая строка, следующие за ним, отсутствовали.
- Пользователи с "color.ui = always & quot; в их конфигурации были нарушены недавним изменением, которое заставило команды сантехники обратить внимание на них, поскольку исправление, созданное внутренне с помощью «git add -p», были окрашены (хех) и сделаны непригодными для использования. Это было исправлено.
- "git branch -M a b" в то время как на ветке, которая полностью не связана ни с одной ветвью, ни с веткой b, когда использовалась несколько рабочих строк. Это было исправлено.
- & quot; git fast-export & quot; с опцией -M / -C, выданной "copy & quot; инструкции на пути, который был одновременно изменен, что было неверно.
- Команда контрольной точки & quot; git fast-import & quot; не обновлял обновления для ссылок и меток, если по крайней мере один объект был создан с момента последней контрольной точки, которая была исправлена, поскольку эти вещи могут произойти без создания нового объекта.
- Сценарии для управления TravisCI были реорганизованы, а затем была оптимизирована оптимизация во избежание циклов расходов на ветке, чей отзыв отмечен.
- & quot; git fetch: & quot; разрешает имя объекта на стороне, когда другая сторона принимает такой запрос с Git v2.5, но документация осталась устаревшей.
- Исправлена регрессия в 2.11, которая заставляла код читать список хранилищ альтернативных объектов, перекрывающих конец строки.
Что нового в версии 2.15.1:
- Вспомогательная функция для чтения целой строки в strbuf ошибочно вызвала ошибку OOM при EOF при определенных условиях, которая была исправлена.
- В дополнение к "cc: # cruft", "cc: a@dd.re.ss # cruft" был обучен «git send-email». как действительный способ сказать ему, что ему также необходимо отправить копию с копией в раздел трейлера.
- Исправить регрессию до "gitk -bisect" по недавнему обновлению.
- В отличие от git commit-tree & lt; файл & quot ;, "git commit-tree -F file & quot; не передал содержимое файла дословно и вместо этого завершил неполную строку в конце, если существует. Последний был обновлен, чтобы соответствовать поведению первого.
- "git archive", особенно при использовании с pathspec, хранит пустую директорию в своем выпуске, хотя Git сама по себе этого не делает. Это было исправлено.
- Проверка ошибок API, которая также вызывает шумоподавление от GCC.
- & gt; git gc & quot; пытается избежать одновременного запуска двух экземпляров путем чтения и записи pid / host из файла блокировки; он использовал для чтения неправильный формат fscanf (), который был исправлен.
- Испытуемый linter был изучен, что нам не нравится «echo -e».
- Код cmp.std.c nitpick.
- & quot; git describe --match & quot; научился брать несколько шаблонов в серии v2.13, но функция игнорировала шаблоны после первого и вообще не работала. Это было исправлено.
- & quot; git cat-file -textconv & quot; недавно начался segfault, который был исправлен.
- Встроенный шаблон для обнаружения "заголовка функции" для HTML не совпадают. Элементы без каких-либо атрибутов, которые были исправлены.
- & quot; git mailinfo & quot; был свободен в декодировании, цитируемый для печати, и произвел мусор, когда две буквы после знака равенства не являются шестнадцатеричными. Это было исправлено.
- Документация для «-X» для слияний была введена в заблуждение, чтобы предположить, что «-sss» существует, что не так.
- Запишите имя нашей системы как «Git». в выводе из скрипта request-pull.
- Исправления для небольших проблем с доступом к памяти, идентифицированных valgrind.
- Возвращает моральный эквивалент 2015 года для эмуляции опроса от восходящего гнулиба, чтобы исправить случайные поломки на HPE NonStop.
- В формате "- format = ... & quot; вариант "git for-each-ref" команду (и ее друзей, то есть режим листинга «ветвь / метка git»), «% (атом:)», (например, «% (refname:)», «% (body:)», используемые для отказа. Вместо этого обрабатывайте их так, как если бы двоеточие и пустая строка, следующие за ним, отсутствовали.
- Пользователи с "color.ui = always & quot; в их конфигурации были нарушены недавним изменением, которое заставило команды сантехники обратить внимание на них, поскольку исправление, созданное внутренне с помощью «git add -p», были окрашены (хех) и сделаны непригодными для использования. Это было исправлено.
- "git branch -M a b" в то время как на ветке, которая полностью не связана ни с одной ветвью, ни с веткой b, когда использовалась несколько рабочих строк. Это было исправлено.
- & quot; git fast-export & quot; с опцией -M / -C, выданной "copy & quot; инструкции на пути, который был одновременно изменен, что было неверно.
- Команда контрольной точки & quot; git fast-import & quot; не обновлял обновления для ссылок и меток, если по крайней мере один объект был создан с момента последней контрольной точки, которая была исправлена, поскольку эти вещи могут произойти без создания нового объекта.
- Сценарии для управления TravisCI были реорганизованы, а затем была оптимизирована оптимизация во избежание циклов расходов на ветке, чей отзыв отмечен.
- & quot; git fetch: & quot; разрешает имя объекта на стороне, когда другая сторона принимает такой запрос с Git v2.5, но документация осталась устаревшей.
- Исправлена регрессия в 2.11, которая заставляла код читать список хранилищ альтернативных объектов, перекрывающих конец строки.
Что нового в версии 2.15.0:
- Вспомогательная функция для чтения целой строки в strbuf ошибочно вызвала ошибку OOM при EOF при определенных условиях, которая была исправлена.
- В дополнение к "cc: # cruft", "cc: a@dd.re.ss # cruft" был обучен «git send-email». как действительный способ сказать ему, что ему также необходимо отправить копию с копией в раздел трейлера.
- Исправить регрессию до "gitk -bisect" по недавнему обновлению.
- В отличие от git commit-tree & lt; файл & quot ;, "git commit-tree -F file & quot; не передал содержимое файла дословно и вместо этого завершил неполную строку в конце, если существует. Последний был обновлен, чтобы соответствовать поведению первого.
- "git archive", особенно при использовании с pathspec, хранит пустую директорию в своем выпуске, хотя Git сама по себе этого не делает. Это было исправлено.
- Проверка ошибок API, которая также вызывает шумоподавление от GCC.
- & gt; git gc & quot; пытается избежать одновременного запуска двух экземпляров путем чтения и записи pid / host из файла блокировки; он использовал для чтения неправильный формат fscanf (), который был исправлен.
- Испытуемый linter был изучен, что нам не нравится «echo -e».
- Код cmp.std.c nitpick.
- & quot; git describe --match & quot; научился брать несколько шаблонов в серии v2.13, но функция игнорировала шаблоны после первого и вообще не работала. Это было исправлено.
- & quot; git cat-file -textconv & quot; недавно начался segfault, который был исправлен.
- Встроенный шаблон для обнаружения "заголовка функции" для HTML не совпадают. Элементы без каких-либо атрибутов, которые были исправлены.
- & quot; git mailinfo & quot; был свободен в декодировании, цитируемый для печати, и произвел мусор, когда две буквы после знака равенства не являются шестнадцатеричными. Это было исправлено.
- Документация для «-X» для слияний была введена в заблуждение, чтобы предположить, что «-sss» существует, что не так.
- Запишите имя нашей системы как «Git». в выводе из скрипта request-pull.
- Исправления для небольших проблем с доступом к памяти, идентифицированных valgrind.
- Возвращает моральный эквивалент 2015 года для эмуляции опроса от восходящего гнулиба, чтобы исправить случайные поломки на HPE NonStop.
- В формате "- format = ... & quot; вариант "git for-each-ref" команду (и ее друзей, то есть режим листинга «ветвь / метка git»), «% (атом:)», (например, «% (refname:)», «% (body:)», используемые для отказа. Вместо этого обрабатывайте их так, как если бы двоеточие и пустая строка, следующие за ним, отсутствовали.
- Пользователи с "color.ui = always & quot; в их конфигурации были нарушены недавним изменением, которое заставило команды сантехники обратить внимание на них, поскольку исправление, созданное внутренне с помощью «git add -p», были окрашены (хех) и сделаны непригодными для использования. Это было исправлено.
- "git branch -M a b" в то время как на ветке, которая полностью не связана ни с одной ветвью, ни с веткой b, когда использовалась несколько рабочих строк. Это было исправлено.
- & quot; git fast-export & quot; с опцией -M / -C, выданной "copy & quot; инструкции на пути, который был одновременно изменен, что было неверно.
- Команда контрольной точки & quot; git fast-import & quot; не обновлял обновления для ссылок и меток, если по крайней мере один объект был создан с момента последней контрольной точки, которая была исправлена, поскольку эти вещи могут произойти без создания нового объекта.
- Сценарии для управления TravisCI были реорганизованы, а затем была оптимизирована оптимизация во избежание циклов расходов на ветке, чей отзыв отмечен.
- & quot; git fetch: & quot; разрешает имя объекта на стороне, когда другая сторона принимает такой запрос с Git v2.5, но документация осталась устаревшей.
- Исправлена регрессия в 2.11, которая заставляла код читать список хранилищ альтернативных объектов, перекрывающих конец строки.
Что нового в версии 2.14.1:
- Этот выпуск пересылает исправление для & quot; SSH: //..." URL из Git v2.7.6
Что нового в версии 2.9.3:
- * Вспомогательная функция, которая принимает содержимое объекта фиксации и находит, что его строка темы не игнорирует ведущие пустые строки, как это обычно делают другие кодировки. Заставьте игнорировать ведущие пустые строки, чтобы они соответствовали.
- Git не знает, что должно содержать содержание в индексе для пути, добавленного с помощью git add -N, поэтому «git grep --cached» не должен показывать хиты (или показывать отсутствие обращений, используя -L ) в таком пути, но эта логика не относится к «git grep», то есть к поиску в рабочих файлах дерева. Но мы сделали это по ошибке, что было исправлено.
- «git rebase -i -autostash» не восстановил автоматическое спряжение, когда операция была прервана.
- "git commit --amend --allow-empty-message -S" для фиксации без какого-либо тела сообщения может быть неверно идентифицировано, где заканчивается заголовок объекта commit.
- Дополнительные обновления для строковых строк, которые, как ожидается, будут буквально введены конечным пользователем шрифтом с фиксированной шириной.
- В течение долгого времени мы оставили комментарий в коде, в котором говорилось, что наш цветной вывод будет работать только тогда, когда мы используем fprintf / fputs в Windows, что больше не имеет отношения к последним годам.
- «gc.autoPackLimit», если установлен в 1, не должен запускать переупаковку, когда есть только один пакет, но код плохо подсчитан и сделал это.
- Одна часть «git am» имела функцию вспомогательного помощника, которая называла материал снаружи «его», а не называя то, что у нас есть «наше», которое не было нейтральным по гендерному признаку, а также противоречило с остальной системой, внешний материал обычно называется «их» в отличие от «наших».
- В рамках тестовой среды был обнаружен новый хелпер test_match_signal, чтобы проверить код выхода из-за того, что он был убит ожидаемым сигналом.
- «git blame -M» пропустил одну строку, перемещенную внутри файла.
- Исправить недавно введенные кодеки, которые участвуют в параллельных операциях подмодуля, которые слишком рано сдались, и могли потратить впустую CPU при попытке записать в условиях углового случая.
- «git grep -i» научился правильно складывать футляр в неасциевых локалях.
- Тест, который безоговорочно использовал «mktemp», узнал, что команда не всегда доступна везде.
- «файл git-вины» разрешал линию строк в незафиксированном, незакрепленном содержимом «файла» для проверки, но он отказался, когда «файл» не появился в текущей фиксации. Когда «файл» был создан путем переименования существующего файла (но изменение не было выполнено), это ограничение было излишне жестким.
- "git add -N dir / file & amp; & amp; git write-tree" выдает неправильное дерево, если в том же каталоге, который сортирует после "файла", есть другие пути.
- «git fetch http: // user: pass @ host / repo ...» очистил часть userinfo, но «git push» не сделал.
- Исправлена старая ошибка, которая вызвала ошибку git diff -ignore-space-at-eol.
- «git notes merge» имеет код, чтобы узнать, существует ли путь (и сбой, если он есть), а затем открыть путь для записи (когда это не так). Замените его открытым с помощью O_EXCL.
- «git pack-objects» и «git index-pack» в основном работают с off_t, когда говорят о смещении объектов в файле packfile, но было несколько мест, которые использовали «unsigned long» для хранения этого значения, к непреднамеренному усечению.
- Последнее обновление до «git daemon» пытается включить KEEPALIVE на уровне сокета, но когда оно порождено через inetd, стандартный дескриптор входного файла может не обязательно быть подключен к сокету. Подавить ошибку ENOTSOCK от setsockopt ().
- Недавняя FreeBSD прекратила создание perl в / usr / bin / perl; переключите по умолчанию встроенный путь на / usr / local / bin / perl на не слишком древние версии FreeBSD.
- «git status» научился предлагать «merge -abort» во время конфликта слияния, так же, как он уже предлагает «rebase -abort» во время конфликтной rebase.
- Источники .c / .h помечены как таковые в нашем файле .gitattributes, так что «git diff -W» и друзья будут работать лучше.
- Существующий тест autoconf, связанный с необходимостью связывания с библиотекой pthread, не проверял все функции из библиотек pthread; недавно FreeBSD имеет некоторые функции в libc, но не другие, и мы ошибочно думали, что связь с libc достаточно, когда это не так.
- Разрешить тесты http-демон в тестах Travis CI.
- Пользователям функции parse_options_concat () API необходимо заранее выделить дополнительные слоты и заполнить их OPT_END (), когда они хотят динамически определять набор поддерживаемых опций, что делает код уязвимым и трудно читаемым. Это было исправлено путем настройки API для выделения и возврата новой копии массива «struct option».
- Использование strbuf в «git rm» для сборки имени файла для удаления было немного субоптимально, что было исправлено.
- «git commit -help» сказал, что «-no-verify» означает только пропустить крюк предварительной фиксации и не смог сказать, что он также пропустил hook-commit-msg.
- «git merge» в Git v2.9 учили запрещать слияние несвязанных строк истории по умолчанию, но это как раз то, что режим «-rejoin» «поддерева git» (в contrib /) хочет сделать. «git subtree» было обучено использовать параметр «-allow-unrelated-history», чтобы переопределить значение по умолчанию.
- Процедура сборки для помощника «git persistent-https» (в contrib /) была обновлена, так что она может быть построена с более поздними версиями Go.
- Существует оптимизация, используемая в «git diff $ treeA $ treeB» для заимствования уже вывернутой копии в рабочем дереве, когда она, как известно, совпадает с сравниваемой blob, ожидая, что open / mmap такого файл быстрее, чем чтение его из хранилища объектов, что предполагает раздувание и применение дельта. Это, однако, ногами, даже когда проверенная копия должна пройти преобразование конвертирования в git (включая чистый фильтр), что наносит ущерб всей точке оптимизации. Оптимизация была отключена, когда требуется преобразование.
- "git -c grep.patternType = extended log --basic-regexp" ошибочно, потому что внутренний API для доступа к машинам grep не был хорошо разработан.
- Порт Windows терпел неудачу в некоторых тестах в t4130 из-за отсутствия inum в возвращаемых значениях его эмуляцией lstat (2).
- Символы на этикетке, показанной для тегов / refs для коммитов в выводе «gitweb», теперь правильно экранированы для правильного вывода HTML.
- FreeBSD может лежать при запросе mtime каталога, в результате чего код необработанного кэша возвращается к медленному пути, что, в свою очередь, приводило к сбою тестов в t7063, потому что он хотел проверить поведение быстрого пути.
- Предупреждения компилятора Squelch для библиотеки netmalloc (в совместимости /).
- Документация API для hashmap неясно, можно ли безопасно удалить hashmap_entry без какого-либо другого рассмотрения. Укажите, что это безопасно.
- Не так недавно переписанный «git am», который начал делать внутренние вызовы в механизм коммитов, имел непреднамеренную регрессию, поскольку независимо от того, сколько секунд потребовалось применить много патчей, полученная в результате метка времени для итоговых коммитов были все те же.
- «git difftool ...», запущенный в подкаталоге, не смог интерпретировать пути относительно этого каталога, который был исправлен.
Что нового в версии 2.9.1:
- Когда «git daemon» запускается без - [init-] тайм-аута, соединение с клиентом, который тихо переходит в автономный режим, может долгое время находиться в сети, тратя ресурсы. KEEPALIVE на уровне сокетов был включен, чтобы позволить ОС замечать такие неудавшиеся подключения.
- Команды в семействе `git log` принимают% C (auto) в строке пользовательского формата. Это безоговорочно включило цвет, игнорируя --no-color или с --color = auto, когда выход не подключен к tty; это было исправлено, чтобы формат действительно вел себя как «авто».
- «git rev-list --count», длина которого ограничена опцией «-n», не очень хорошо работает с подсчетом, оптимизированным для просмотра индекса растрового изображения.
- «git show -W» (расширьте ханки, чтобы покрыть всю функцию, ограниченную строками, которые соответствуют шаблону «funcname»), используемые для отображения всего файла, когда изменение добавило целую функцию в конце файла, что был исправлен.
- Обновлен набор документации, так что буквенные команды, переменные конфигурации и переменные окружения последовательно набираются шрифтом фиксированной ширины и полужирным шрифтом в manpages.
- "git svn propset", добавленная за 2.3 дня, задокументирована.
- Документация пытается последовательно называть «GPG»; при обращении к конкретному имени программы используется «gpg».
- «git reflog» остановился, увидев запись, обозначающую событие создания ветки (иначе говоря, «нерожденное»), которое показало, что reflog был усечен.
- Сценарий скрипта git-prompt (в contrib /) не был дружественным с теми, кто использует исправление «set -u».
- Кодовая страница, которая использовала alloca (3) для размещения неограниченного количества данных в стеке, была обновлена, чтобы избежать этого.
- "git update-index --add --chmod = + x file" может использоваться как побег-люк, но не дружественная вещь, чтобы заставить людей, которые действительно должны использовать их регулярно. Вместо этого можно использовать «git add -chmod = + x file».
- Улучшение сборки gnome-keyring (в contrib /)
- «git status» используется, чтобы сказать «рабочий каталог», когда это означало «рабочее дерево».
- Комментарии о неправильном использовании оболочек FreeBSD были уточнены с номером версии (9.x и раньше были сломаны, более новые - в порядке).
- «git cherry-pick A» работал на неродившейся ветке, но «git cherry-pick A..B» не сделал.
- «git add -i / -p» научился оценивать diff.compactionHeuristic экспериментальную ручку, чтобы пользователь мог работать с одним и тем же разделом hunk как выход «git diff».
- "log -graph --format =" узнал, что "% & gt; | (N)" указывает ширину относительно левого края терминала, а не относительно области для рисования текста, который находится справа от предка -граф. Он также теперь принимает отрицательный N, что означает, что предел столбца относительно правой границы.
- Правило владения для части памяти, в которой хранятся ссылки, которые будут загружены в «git fetch», было отвратительным, которое было очищено.
- «git bisect» делает внутренний вызов «git diff-tree», когда биссекция находит виновника, но этот вызов не инициализировал структуру данных, чтобы передать API-интерфейс diff-дерева правильно.
- Задокументированы форматы различных данных (и как их проверить), в которых мы используем подпись GPG.
- Исправить непреднамеренную регрессию в версии 2.9, которая разбивает «clone -depth», которая возвращается к подмодулям, заставляя подмодули также клонироваться неглубоко, что многие серверные экземпляры, которые размещают выше субмодулей, не подготовлены для.
- Исправить ненужное обращение в идиоматическом использовании ': $ {VAR = default}', чтобы установить значение по умолчанию, не заключая его в двойные кавычки.
- В некоторых кодах, специфичных для платформы, были строгие объявления ANSI с строгими декларациями функций C, которые не принимают никаких параметров, которые были исправлены.
- Внутренний код, используемый для отображения локального смещения часового пояса, не готов обрабатывать отметки времени за пределами 2100 года и присваивает вызывающему абоненту значение фальшивого смещения. Используйте вместо этого более мягкий вид +0000 и пусть «git log» будет в таком случае, а не прерывается.
- Один из четырех вызовов readlink (1) в нашем тестовом наборе был переписан так, что тест может выполняться в системах без команды (другие находятся в платформе тестирования valgrind и t9802).
- t / perf требует / usr / bin / time с расширением GNU; вызов его обновляется до «gtime» в Дарвине.
- Исправлена ошибка, которая вызвала «git p4» при запуске в режиме подробного сообщения, чтобы сообщить о путях, которые были опущены из-за неверного префикса ветки; команда «Игнорирование файла за пределами префикса» для путей, которые _inside _.
- Документация верхнего уровня «git help git» по-прежнему указывает на набор документации, размещенный в ныне существующем репозитории google-кода. Обновите его, чтобы указать вместо https://git.github.io/htmldocs/git.html.
Подкоманда
Что нового в версии 2.9.0:
Новое в GIT 2.8.1 (5 апреля 2016 года)
Что нового в версии 2.8.1:
- «make rpmbuild» была нарушена, так как ее вход git.spec.in не обновлялся, чтобы соответствовать файлу, который он описывает, который был недавно переименован. Это было исправлено.
Что нового в версии 2.7.3:
- Традиционно тесты, которые используют команды, которые работают с содержимым рабочего дерева, называются «worktree» в своих именах файлов, но с недавней добавкой подкоманды «git worktree», чьи тесты также называются аналогично, она имеет становится сложнее рассказать им обособленно. Традиционные тесты были переименованы, чтобы вместо этого использовать «дерево работы», чтобы их отличить.
- Многие кодеки забывают проверить возвращаемое значение из git_config_set (); функция выполняется для die (), чтобы убедиться, что мы не продолжаем, когда настройка параметра конфигурации не удалась.
- Обработка ошибок при записи в наш внутренний асинхронный процесс была сделана более надежной, что уменьшает flakiness в наших тестах.
- «git show» HEAD: Foo [BAR] Baz '' не интерпретировал аргумент как rev, т. е. объект, названный именем пути с подстановочными символами в древовидном объекте.
- "git rev-parse --git-common-dir", используемый в функции worktree, плохо выполняемый при запуске из подкаталога.
- Подкоманда «v (iew)» интерактивной команды «git am -i» была нарушена в 2.6.0 таймфрейме, когда команда была перезаписана в C.
- «git merge-tree», используемое для неправильного использования «обе стороны добавили« конфликт с собственным », создают файл поддельного предка, который имеет общие части того, что добавили обе стороны, и выполняет логику с 3-сторонним слиянием; это было обновлено, чтобы использовать обычное «трехстороннее слияние с пустым блобом как поддельный общий файл предка», используемый в остальной системе.
- Правило владения памятью API fill_textconv (), которое было немного сложнее, было документировано немного лучше.
- В документации явно не указано, что «простой» режим по умолчанию используется для «git push», когда конфигурация push.default не установлена.
- Последние версии GNU grep являются более строгими, когда их ввод содержит произвольные двоичные данные, которые используются в некоторых наших тестах. Перепишите тесты, чтобы обойти проблему.
- Вспомогательная функция «git submodule» использует, поскольку v2.7.0 для перечисления модулей, которые соответствуют аргументу pathspec, указанному в его подкомандах (например, «subodule add»), исправлено.
- «git config section.var value», чтобы установить значение в файле конфигурации для каждого репозитория, не удалось, когда он был запущен за пределами какого-либо репозитория, но неправильно сказал причину.
- Код для чтения данных пакета с использованием смещений, сохраненных в файле idx pack, был более тщательно проверен на достоверность данных в idx.
Что нового в версии 2.7.2:
- На слиянии с низкоуровневым оборудованием было показано использование терминации линии CRLF при вставке маркеров конфликта в объединенное содержимое, которые сами по себе линируются на линии CRLF.
- «git worktree» имел сломанный код, который пытался автоматически исправить возможную несогласованность, которая возникает из-за того, что конечные пользователи перемещают рабочую среду в разные места, не сообщая Git (исходный репозиторий должен поддерживать backpointers на своих рабочих деревьях, но «mv» управляемые конечными пользователями, которые не знакомы с этим фактом, очевидно, не будут их корректировать), что фактически ухудшило ситуацию при запуске.
- «git push -force-with-lease» учили сообщать, нужно ли нажать, чтобы заставить (или переадресовать).
- Эмулированная команда «да», используемая в наших тестовых сценариях, была изменена, чтобы не тратить слишком много времени на создание ненужного вывода, который не используется, чтобы помочь тем, кто тестирует в Windows, где он не остановится, пока он не заполнит буфер буфера из-за к отсутствию SIGPIPE.
- Бэкэнда vimdiff для «git mergetool» была настроена так, чтобы упорядочивать и индексировать буферы в порядке, который соответствовал ожиданию большинства людей, читающих слева направо, затем сверху вниз и назначать буферы 1 2 3 4 «мысленно», на локальные базы удаленных слияния окон на основе этого порядка.
- Исправлена документация для «git clean»; он упомянул, что .git / modules / * удаляются с помощью двух «-f», чего никогда не было.
- Пути, которые были проиндексированы с индексом «add -N», еще не указаны в индексе, но несколько команд ведут себя так, как будто они уже вредны.
- Также включает крошечную документацию и тестовые обновления.
Что нового в версии 2.6.4:
- Скрипт «configure» не проверял корректность -lpthread, что расстраивало некоторые линкеры.
- Добавить поддержку для разговора http / https через прокси-сервер socks.
- Исправление переносимости для Windows, которое может переписать переменную $ SHELL с использованием путей, отличных от POSIX.
- Теперь мы постоянно позволяем всем крючкам игнорировать их стандартный ввод, а не git жаловаться на SIGPIPE.
- Исправить кавычки оболочки в скрипте contrib.
- Проверка переносимости переносимости темы для v2.6.1.
- Разрешить расширение тильды в некоторых конфигурациях http config.
- Дайте полезный специальный случай «diff / show -word-diff-regex =.» в качестве примера в документации.
- Исправьте угловой регистр в ветви фильтра.
- Сделайте git-p4 на отдельной голове.
- Прояснение документации для «check-ignore» без «--verbose».
- Так же, как рабочее дерево очищается, когда пользователь отменяет подачу в P4Submit.applyCommit (), очищайте беспорядок, если «p4 submit» терпит неудачу.
- Наличие остаточного файла .idx без соответствующего .pack-файла в репозитории ухудшает производительность; «git gc» научились обрезать их.
- Код для подготовки стороны рабочего дерева временного каталога для функции «dir-diff» забыл, что символические ссылки не нужно копировать (или символизировать) во временную область, так как код уже имеет особые случаи и перезаписывает их. Кроме того, было неправильно пытаться вычислить имя объекта цели символической ссылки, которая может даже не существовать или может быть каталогом.
- Не удалось запустить сконфигурированную переменную rebase.autostash из командной строки, так как отсутствовала «git rebase -no-autostash».
- Разрешить «git interp-trailers» запускать за пределами репозитория Git.
- Произведите правильный «грязный» маркер для подсказок оболочки, даже если мы находимся на сироте или неродившейся ветке.
- Некоторые угловые случаи были исправлены при сопоставлении строк в «git status».
- Общая криптоэкранная реализация SHA1_Update () Apple не занимает больше 4 ГБ за один раз, и теперь у нас есть временное решение для компиляции.
Что нового в версии 2.5.3:
- Экспериментальная функция отсутствия следов кэширования была ошибочной, когда задействованы пути с несколькими уровнями подкаталогов.
- В последних версиях сценария «git am» есть регрессия производительности в кодеке «git am -skip», которая больше не существует во встроенной версии на «главном» фронте. Исправьте регрессию в последней версии скрипта, которая появляется в треке обслуживания 2.5.x и старше.
Что нового в версии 2.4.6:
- "git fetch --depth =" и "git clone --depth =" выдает мелкий запрос на передачу даже в пакет загрузки, который не поддерживает эту возможность.
- «git fsck» используется для игнорирования отсутствующих или недопустимых объектов, записанных в reflog.
- Завершение tcsh записывает скрипт bash bash, но это не сработало бы для пользователей с набором noclobber.
- Недавние обновления для Mac OS X ломают логику, чтобы обнаружить, что компьютер находится в сети переменного тока в образце сценария pre-auto-gc.
- «git format-patch --ignore-if-upstream A..B» не понравилось, чтобы теги были загружены по мере того, как граница коммитов.
- Также содержит typofixes, обновления документации и тривиальный код
- чистые окна.
Что нового в версии 2.4.2:
- "git rev-list --объекты $ old --not --all", чтобы увидеть, было ли все, доступное из $ old уже подключено к существующим refs, было очень неэффективно.
- «hash-object --literally», введенный в v2.2, не был подготовлен к тому, чтобы иметь действительно длинное имя типа объекта.
- «git rebase -quiet» не совсем тихий, когда делать нечего.
- Значение параметра "log -decorate =" не выполнено.
- «фильтр-ветвь» - поврежденное сообщение журнала фиксации, заканчивающееся неполной строкой на платформах с некоторыми реализациями «sed», которые выполняют такую линию. Работайте вокруг, избегая использования «sed».
- «git daemon» не удается построить из источника в конфигурации NO_IPV6 (регрессия в 2.4).
- «git stash pop / apply» забыли убедиться, что не только рабочее дерево чиста, но и индекс чист. Последнее важно, поскольку приложение-штемпель может конфликтовать, и индекс будет использоваться для разрешения конфликтов.
- Мы добавили $ GIT_EXEC_PATH, а путь «git» установлен (обычно «/ usr / bin») на $ PATH при вызове подпрограмм и перехватов почти вечность, но исходный прецедент, который последний пытался поддерживать, был полу -bogus (т. е. установите git в / opt / foo / git и запустите его, не имея / opt / foo на $ PATH), и что более важно, оно становится все менее и менее актуальным, поскольку Git становится более популярным (т.е. пользователи будут _want_ иметь это на их $ PATH). Остановите добавление пути, в котором «git» устанавливается в $ PATH пользователей, так как это будет мешать людям, зависящим от порядка поиска команд (например, им могут не нравиться версии программ, которые не связаны с Git в / usr / bin и хотят переопределить их, имея разные в / usr / local / bin и иметь последний каталог раньше в их $ PATH).
- Также содержит типовые символы, обновления документации и тривиальные очищения кода.
Комментарии не найдены