Git е една от най-широко използваните системи за управление на разпределени версии, описани от разработчиците по света като услуга номер едно VCS. Той се изпълнява само от терминал, но са налице няколко преден план за изтегляне.
Това е безплатна и отворена система за управление на версиите, която може да обработва както големи, така и малки проекти с максимална ефективност и скорост. Програмата може лесно да бъде описана като малка, бърза и разпространявана.
Опции на командния ред
Програмата идва с шепа команди, които могат лесно да се запомнят от всеки, който се занимава с разходка. Всички операции се изпълняват локално и са проектирани да работят върху ядрото на Linux.
Включените команди се добавят, bisect, клон, checkout, клониране, commit, diff, извличане, grep, init, log, merge, mv, pull, push, rebase, reset. Можете лесно да научите какво прави всяка команда, като стартирате командата git -help от терминален прозорец.
Характеристики с един поглед
Когато използвате Git, потребителите ще могат да добавят файлове, клонове или пътища за разплащане, хранилища на клонинги, да създават празни Git repos, да се присъединят към няколко история на разработките, да показват работния статус на дърветата, да записват промени, изтриване на клонове.
Освен това приложението позволява на потребителите да виждат промените между ангажиментите и работещите дървета, да печатат линии, които съответстват на шаблона, да виждат регистрационни файлове, да свалят отметки и обекти, да преименуват или преместват файлове, символни връзки и директории, файлове от работно дърво.
Различни графични препратки съществуват
Дори и да е софтуер за команден ред, са налице различни графични потребителски интерфейси (GUI), включително git-cola, SmartGit, GitEye, giggle и gitg. Проектите превъзхождат помощните програми на SCM (Софтуерна конфигурация), като 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; файл "," git commit-tree -F файл " не предаде съдържанието на файла дословно и вместо това завърши непълна линия в края, ако съществува. Последният е актуализиран, за да съответства на поведението на предишния.
- "git архив", особено когато се използва с pathspec, съхранява празна директория в своя изход, въпреки че самият Git никога не го прави. Това е фиксирано.
- API грешка-proofing, което се случва и да шумен предупреждения от ССЗ.
- "git gc" се опитва да избягва да изпълнява два екземпляра едновременно, като чете и пише pid / host от и до заключващ файл; използваше неправилен формат fscanf () при четене, което бе коригирано.
- Изпитваната подложка е научена, че не харесваме "ехо-е".
- Код cmp.std.c nitpick.
- "git describe - match" се научи да взема множество модели в серия v2.13, но функцията игнорира моделите след първата и не работи изобщо. Това е фиксирано.
- "git cat-file - textconv" започна неотдавна, което бе коригирано.
- Вграденият образец за откриване на заглавката "функция" за HTML не съвпадат .. елементите без никакви атрибути, които са били коригирани.
- "git mailinfo" е насипен в декодирането цитира печатни и произведени боклук, когато две букви след равен знак не са шестнадесетични. Това е фиксирано.
- Документацията за "-X" за сливания е заблуждаващо написана, за да се предположи, че "техните" съществува, което не е така.
- Кажете името на нашата система като "Git" в изхода от скрипта request-pull.
- Коригира няколко проблема за достъп до паметта, идентифицирани от Valgrind.
- Backports морален еквивалент от 2015 фиксира към емулацията на анкетата от горния gnulib, за да определи случайни счупвания на HPE NonStop.
- В "- формат = ..." вариант на "git for-each-ref" командата (и нейните приятели, т.е. режимът на записване на "git branch / tag"), "% (атом:)" (например "% (refname:)", "% (body:)" се използва за грешка, но се отнася към тях като към двоеточие и празен низ, които го следват.
- Потребители с "color.ui = always" в тяхната конфигурация бяха счупени от скорошна промяна, която накара водопроводните команди да обърнат внимание на тях като пластир, създаден вътрешно от "git add -p" бяха оцветени (хех) и станаха неизползваеми. Това е фиксирано.
- "git клон -M a b" докато на клон, който е напълно несвързан нито с клон б, нито с клон б не се е проявил, когато се използваха множество работни места. Това е фиксирано.
- "git бързо експортиране" с -М / -О опция, издадена "копие" инструкция по път, която се променя едновременно, което е неправилно.
- Командата на контролния пункт "git fast import" не е изтрил актуализации за референции и марки, освен ако не е създаден поне един обект от последния контролен пункт, коригиран, тъй като това може да се случи, без да се създава нов обект.
- Скриптовете за управление на TravisCI са реорганизирани и след това е реализирана оптимизация за избягване на циклите за изразходване на клона, чийто съвет е маркиран.
- "git извличане:" позволява на името на обекта отстрани, когато другата страна приеме такава молба, тъй като 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; файл "," git commit-tree -F файл " не предаде съдържанието на файла дословно и вместо това завърши непълна линия в края, ако съществува. Последният е актуализиран, за да съответства на поведението на предишния.
- "git архив", особено когато се използва с pathspec, съхранява празна директория в своя изход, въпреки че самият Git никога не го прави. Това е фиксирано.
- API грешка-proofing, което се случва и да шумен предупреждения от ССЗ.
- "git gc" се опитва да избягва да изпълнява два екземпляра едновременно, като чете и пише pid / host от и до заключващ файл; използваше неправилен формат fscanf () при четене, което бе коригирано.
- Изпитваната подложка е научена, че не харесваме "ехо-е".
- Код cmp.std.c nitpick.
- "git describe - match" се научи да взема множество модели в серия v2.13, но функцията игнорира моделите след първата и не работи изобщо. Това е фиксирано.
- "git cat-file - textconv" започна неотдавна, което бе коригирано.
- Вграденият образец за откриване на заглавката "функция" за HTML не съвпадат .. елементите без никакви атрибути, които са били коригирани.
- "git mailinfo" е насипен в декодирането цитира печатни и произведени боклук, когато две букви след равен знак не са шестнадесетични. Това е фиксирано.
- Документацията за "-X" за сливания е заблуждаващо написана, за да се предположи, че "техните" съществува, което не е така.
- Кажете името на нашата система като "Git" в изхода от скрипта request-pull.
- Коригира няколко проблема за достъп до паметта, идентифицирани от Valgrind.
- Backports морален еквивалент от 2015 фиксира към емулация на анкетата от горния gnulib, за да определи случайни счупвания на HPE NonStop.
- В "- формат = ..." вариант на "git for-each-ref" командата (и нейните приятели, т.е. режимът на записване на "git branch / tag"), "% (атом:)" (например "% (refname:)", "% (body:)" се използва за грешка, но се отнася към тях като към двоеточие и празен низ, които го следват.
- Потребители с "color.ui = always" в тяхната конфигурация бяха счупени от скорошна промяна, която накара водопроводните команди да обърнат внимание на тях като пластир, създаден вътрешно от "git add -p" бяха оцветени (хех) и станаха неизползваеми. Това е фиксирано.
- "git клон -M a b" докато на клон, който е напълно несвързан нито с клон б, нито с клон б не се е проявил, когато се използваха множество работни места. Това е фиксирано.
- "git бързо експортиране" с -М / -О опция, издадена "копие" инструкция по път, която се променя едновременно, което е неправилно.
- Командата на контролния пункт "git fast import" не е изтрил актуализации за референции и марки, освен ако не е създаден поне един обект от последния контролен пункт, коригиран, тъй като това може да се случи, без да се създава нов обект.
- Скриптовете за управление на TravisCI са реорганизирани и след това е реализирана оптимизация за избягване на циклите за изразходване на клона, чийто съвет е маркиран.
- "git извличане:" позволява на името на обекта отстрани, когато другата страна приеме такава молба, тъй като 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; файл "," git commit-tree -F файл " не предаде съдържанието на файла дословно и вместо това завърши непълна линия в края, ако съществува. Последният е актуализиран, за да съответства на поведението на предишния.
- "git архив", особено когато се използва с pathspec, съхранява празна директория в своя изход, въпреки че самият Git никога не го прави. Това е фиксирано.
- API грешка-proofing, което се случва и да шумен предупреждения от ССЗ.
- "git gc" се опитва да избягва да изпълнява два екземпляра едновременно, като чете и пише pid / host от и до заключващ файл; използваше неправилен формат fscanf () при четене, което бе коригирано.
- Изпитваната подложка е научена, че не харесваме "ехо-е".
- Код cmp.std.c nitpick.
- "git describe - match" се научи да взема множество модели в серия v2.13, но функцията игнорира моделите след първата и не работи изобщо. Това е фиксирано.
- "git cat-file - textconv" започна неотдавна, което бе коригирано.
- Вграденият образец за откриване на заглавката "функция" за HTML не съвпадат .. елементите без никакви атрибути, които са били коригирани.
- "git mailinfo" е насипен в декодирането цитира печатни и произведени боклук, когато две букви след равен знак не са шестнадесетични. Това е фиксирано.
- Документацията за "-X" за сливания е заблуждаващо написана, за да се предположи, че "техните" съществува, което не е така.
- Кажете името на нашата система като "Git" в изхода от скрипта request-pull.
- Коригира няколко проблема за достъп до паметта, идентифицирани от Valgrind.
- Backports морален еквивалент от 2015 фиксира към емулацията на анкетата от горния gnulib, за да определи случайни счупвания на HPE NonStop.
- В "- формат = ..." вариант на "git for-each-ref" командата (и нейните приятели, т.е. режимът на записване на "git branch / tag"), "% (атом:)" (например "% (refname:)", "% (body:)", които се използват за грешка, но ги третирате така, сякаш двоеточие и празен низ не са там.
- Потребители с "color.ui = always" в тяхната конфигурация бяха счупени от скорошна промяна, която накара водопроводните команди да обърнат внимание на тях като пластир, създаден вътрешно от "git add -p" бяха оцветени (хех) и станаха неизползваеми. Това е фиксирано.
- "git клон -M a b" докато на клон, който е напълно несвързан нито с клон б, нито с клон б не се е проявил, когато се използваха множество работни места. Това е фиксирано.
- "git бързо експортиране" с -М / -О опция, издадена "копие" инструкция по път, която се променя едновременно, което е неправилно.
- Командата на контролния пункт "git fast import" не е изтрил актуализации за референции и марки, освен ако не е създаден поне един обект от последния контролен пункт, коригиран, тъй като това може да се случи, без да се създава нов обект.
- Скриптовете за управление на TravisCI са реорганизирани и след това е реализирана оптимизация за избягване на циклите за изразходване на клона, чийто съвет е маркиран.
- "git извличане:" позволява на името на обекта отстрани, когато другата страна приеме такава молба, тъй като Git v2.5, но документацията остана застояла.
- Регресията в 2.11, която прави кода за четене на списъка с хранилища на алтернативни обекти, надхвърлящ края на низа, е бил фиксиран.
Какво е новото във версия 2.14.1:
- 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 blame file" позволи да се проверят линиите на линиите в незаделеното, несъдържащо съдържание на "файла", но той отказа, когато "file" не се появи в текущия ангажимент. Когато "файлът" е създаден чрез преименуване на съществуващ файл (но промяната не е била извършена), това ограничение е ненужно стегнато.
- "git добавете -N dir / file & amp; git write-tree", създадохте неправилно дърво, когато има други пътища в същата директория, която се сортира след "file".
- "git извлича http: // user: pass @ host / repo ..." изтрива частта userinfo, но "git push" не го направи.
- Грешен стар бъг, който е причинил повреда в "git diff --ignore-space-at-eol".
- "Гит бележки сливане" имаше код, за да види дали съществува пътека (и се провали, ако го направи) и след това отвори пътя за писане (когато не го направи). Заменете го с отворен с O_EXCL.
- "git pack-objects" и "git index-pack" работят предимно с off_t, когато говорим за офсетовете на обекти в пакета за пакети, но имаше няколко места, които използваха "unsigned long" до неволно скъсяване.
- Последната актуализация на "git daemon" се опитва да активира KEEPALIVE на ниво socket, но когато се зареди чрез inetd, стандартният дескриптор на файловете може да не е непременно свързан към гнездо. Потискане на грешка ENOTSOCK от setsockopt ().
- Последният FreeBSD спря да прави perl достъпен в / usr / bin / perl; включете по подразбиране вградения път към / usr / local / bin / perl за не твърде древните версии на FreeBSD.
- "git status" се научи да предлага "merg --abort" по време на конфликтно сливане, точно както вече предполага "rebase - abort" по време на конфликтна ребаза.
- Източниците .c / .h са маркирани като такива в нашия .gitattributes файл, така че "git diff -W" и приятелите ще работят по-добре.
- Съществуващият тест, генериран от autoconf за необходимостта да се свърже с библиотеката pthread, не провери всички функции от pthread библиотеки; последните FreeBSD има някои функции в libc, но не и други, и погрешно мислехме, че свързването с libc е достатъчно, когато не е така.
- Разрешете тестовете за демонстрация на http в Travis CI тестовете.
- Потребителите на функцията API parse_options_concat () трябва предварително да заделят допълнителни карета и да ги запълнят с OPT_END (), когато искат да решат динамично набор от поддържани опции, което прави кода грешен и трудно прочетен. Това бе коригирано чрез променянето на приложния програмен интерфейс (API), за да се разпредели и върне ново копие на масива "struct option".
- Използването на strbuf в "git rm" за създаване на име на файл, което да бъде премахнато, е малко подоптимално, което е било фиксирано.
- "git commit --help" каза, че "--no-verify" е само за прескачане на кутията за предварително ангажиране и не успя да каже, че също е пропуснала куката commit-msg.
- "Гит сливане" в Git v2.9 се е научил да забранява обединяването на несвързани линии на историята по подразбиране, но това е именно нещо като "-rejoin" режим на "git subtree" (в contrib /) иска да направи. "git subtree" е научен да използва опцията "--allow-unrelated-histories", за да замени стандартното.
- Процедурата за създаване на помощник "git persistent-https" (в contrib /) бе актуализирана, за да може да се създаде с по-новите версии на Go.
- Използва се оптимизация в "git diff $ treeA $ treeB" за заемане на вече отпечатано копие в работното дърво, когато е известно, че е същото като сравняваното петно, очаквайки, че отворените / mmap такива файлът е по-бърз от четенето му от магазина за обекти, което включва надуване и прилагане на делта. Това обаче се задейства, дори когато копираното копие трябва да мине през конвертирането към преобразуване (включително чистия филтър), което побеждава цялата точка от оптимизацията. Оптимизацията е деактивирана, когато е необходимо преобразуването.
- "git -c grep.patternType = разширен регистър - basic-regexp" неправилно, тъй като вътрешният API за достъп до grep машината не е проектиран добре.
- Пристанището на Windows не успя да направи някои тестове в t4130, поради липсата на inum в получените стойности с неговата емулация lstat (2).
- Знаците в етикета, показан за маркери / препратки за ангажименти в изход "gitweb", сега са правилно избягвани за правилен HTML изход.
- FreeBSD може да лежи, когато е попитал mtime на директория, което прави кода на кеш паметта да се върне на бавна пътека, което на свой ред предизвика тестове в t7063 да се провалят, защото искаше да провери поведението на бързия път.
- Предупреждения за компилатора Squelch за netmalloc (в compat /) библиотека.
- Документацията за приложния програмен интерфейс (API) за hashmap не е ясна, ако hashmap_entry може безопасно да се изхвърли без други съображения. Посочете, че е безопасно да го направите.
- Неотдавнашното пренаписване на "git am", което започна да извършва вътрешни обаждания в машината за предаване, имаше неволна регресия, тъй като независимо колко секунди е необходимо, за да се приложат много петна, бяха еднакви.
- "git difftool ...", стартиран в поддиректория, не успя да интерпретира пътищата, отнасящи се до тази директория, която е била фиксирана.
Какво е новото във версия 2.9.1:
- Когато "git daemon" се изпълнява, без да е зададен - [init-] timeout, връзката от клиент, който мълчаливо излиза офлайн, може да виси дълго време, губи ресурси. KEEPALIVE на ниво Socket е разрешено да позволи на операционната система да забележи такива неуспешни връзки.
- Командите в семейството `git log` вземат% C (auto) в потребителски низ на формат. Това безусловно включи цвета, като игнорира --no-color или с -color = auto, когато изходът не е свързан с tty; това беше коригирано, за да стане форматът наистина да се държи като "авто".
- "git rev-list --count", чиято дължина на ходене е ограничена с опцията "-n", не работи добре с оптимизираното броене, за да се погледне индексът на растерни изображения.
- "git show -W" (разширявайте hunks, за да покриете цялата функция, дефинирана от линии, които съответстват на шаблона "funcname"), използван за показване на целия файл, когато една промяна е добавила цялата функция в края на файла. е фиксиран.
- Наборът от документация е обновен така, че буквалните команди, конфигурационните променливи и променливите на средата да бъдат последователно подредени в шрифт с фиксирана ширина и по-смели в страниците.
- Документът "git svn propset", добавен в 2.3 дни, е документиран сега.
- Документацията се опитва непрекъснато да изписва "GPG"; когато се споменава името на конкретната програма, се използва "gpg".
- "git reflog" е спрян, когато е видял запис, който обозначава събитие за създаване на клон (известно още като "неродено"), което го е направило да изглежда, сякаш е бил отрязан.
- Скриптът на git-prompt (в contrib /) не е приятелски настроен към тези, които използват "set -u", който е бил фиксиран.
- Кодовата пътека, която използва alloca (3) за поставяне на неограничено количество данни в стека, е актуализирана, за да избегне това.
- "git update-index - add - chmod = + x файла" може да се използва като авариен люк, но не и за приятелско нещо, което да се налага за хора, които трябва редовно да го използват. вместо това може да се използва "git add --chmod = + x файл".
- Изграждане на подобрения за gnome-keyring (в contrib /)
- "git статус" означаваше "работна директория", когато това означава "работно дърво".
- Коментарите за недобросъвестните FreeBSD черупки са изяснени с номера на версията (9.x и преди са счупени, по-новите са OK).
- "Git Cherry-pick A" работи върху неродения клон, но "git cherry-pick A..B" не го направи.
- "git add -i / -p" се научи да спазва diff.compactionHeuristic експериментално копче, така че потребителят да може да работи на едно и също разделяне на hunk като изход "git diff".
- "log -graph -format =" научи, че "%> (N)" указва ширината спрямо левия край на терминала, а не относително към областта, за да нарисувате текст, който е отдясно на родословието - секция за графика. Сега също така приема отрицателен N, което означава, че границата на колоната е относителна към дясната граница.
- Правилото за собствеността на частта от паметта, съдържаща препратки, които трябва да бъдат извлечени в "git fetch", е изкривено, което е било изчистено.
- "git bisect" прави вътрешно обаждане до "git diff-tree", когато bisection открие виновника, но това обаждане не инициализира структурата на данните, за да премине правилно API на diff-tree.
- Документират се формати на различните данни (и как да се валидират), където използваме GPG подпис.
- Коригирайте неволната регресия в v2.9, която нарушава "clone -depth", която се редува до субмодули, като принуждава субмодулите също да бъдат клонирани плитък, което не е подготвено за много сървърни случаи, които са домакини нагоре по веригата на подмодулите. / Li>
- Коригирайте ненужно отпадъците в идиоматичното използване на ': $ {VAR = default}', за да зададете стойността по подразбиране, без да я включвате в двойни кавички.
- Някои специфични за платформата кодове имат стриктни декларации, които не са ANSI, на функциите C, които не вземат никакви коригирани параметри.
- Вътрешният код, използван за показване на отместването на локалната часова зона, не е подготвен да обработва времеви отпечатъци отвъд 2100 година и е дал фалшива компенсационна стойност на обаждащия се. Използвайте по-доброкачествено изглеждащо +0000 вместо това и оставете "git log" да се случи в такъв случай, вместо да бъде прекратено.
- Една от четирите invokations на readlink (1) в нашия тестов пакет е пренаписана, така че тестът може да се изпълнява на системи без команда (други са във валидрен тест и 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:
- "Направете rpmbuild" целта е нарушена, тъй като нейният вход, git.spec.in, не е актуализиран, за да съответства на файл, който описва, който е бил преименуван наскоро. Това е фиксирано.
Какво е новото във версия 2.7.3:
- Традиционно тестовете, които се опитват да команди, които работят върху съдържанието в работното дърво, са наименувани с "worktree" в имената на файловете си, но с наскоро добавената подкоманда "git worktree", чиито тестове също са наименувани стават по-трудни да ги разграничат. Традиционните тестове са преименувани, за да се използва "work-tree" вместо да се разграничат.
- Много кодови пътища забравят да проверят връщаната стойност от git_config_set (); функцията е направена да умре (), за да сме сигурни, че няма да продължим, когато настройката на конфигурационната променлива се провали.
- Управлението на грешките при писането в нашия вътрешен асинхронен процес е станало по-стабилно, което намалява любопитството в нашите тестове.
- "git show" HEAD: Foo [BAR] Baz "не интерпретира аргумента като rev, т.е. обект, наречен от името на пътя със заместващи символи в дървовиден обект.
- "git rev-parse -git-common-dir", използван в работната характеристика, е неправилен, когато се изпълнява от поддиректория.
- Подкомандата "v (iew)" на интерактивната команда "git am -i" е била прекъсната в 2.6.0 времева рамка, когато командата е била пренаписана в C.
- "git merge-tree", използвано за неправилна употреба "двете страни добавиха" конфликт със собствения си "създаване на фалшив файл на предшественици, който има общите части на това, което двете страни са добавили и правят 3-way merge" логика; това е актуализирано, за да се използва обичайното "3-пътно сливане с празен петно като фалшив общ предшественик", използван в останалата част от системата.
- Правилото за собствеността на паметта на API за fill_textconv (), което беше малко трудно, е документирано малко по-добре.
- В документацията не е посочено ясно, че режимът "прост" вече е по подразбиране за "git push", когато конфигурацията push.default не е зададена.
- Последните версии на GNU grep са pickier, когато техният вход съдържа произволни бинарни данни, които някои от нашите тестове използват. Пренапише тестовете, за да избегне проблема.
- Помощната функция "git submodule" използва от v2.7.0 списъка на модулите, съответстващи на аргумента pathspec, даден на неговите подкоманди (например "submodule add").
- "git config section.var стойност", за да зададете стойност в конфигурационния файл на хранилище за хранилище, се е провалила, когато е била изпълнена извън хранилището, но не е казала правилно причината.
- Кодът за четене на данните за пакета с помощта на отместването, съхранено в пакета IDX файл, е направено по-внимателно да се провери валидността на данните в idx.
Какво е новото във версия 2.7.2:
- Машината за сливане на ниско ниво е била обучавана да използва терминиране на CRLF линии при вмъкване на конфликтни маркери в обединени съдържания, които сами са прекратили CRLF.
- "git worktree" имаше развален код, който се опитва да коригира автоматично евентуалната несъответствие, което се получава от крайните потребители, които преместват работната среда на различни места, без да казват на Git (оригиналното хранилище трябва да поддържа корекции на работната си маса, но "mv" управлявани от крайни потребители, които не са запознати с този факт, очевидно няма да ги коригират), което всъщност влоши нещата, когато се задейства.
- "git push - force-with-lease" се учи да докладва дали натискането е необходимо (или бързо препращане).
- Поддръжката на vimdiff за "git mergetool" е променена, за да се подредят и да се добавят буфери в реда, който да съответства на очакванията на мнозинството от хората, които четат отляво надясно, след това отгоре надолу и да задават буфери 1 2 3 4 "психически" към локални прозорци за отдалечено сливане, базирани на тази поръчка.
- Документацията за "git clean" е коригирана; той спомена, че .git / modules / * се премахват, като са дадени два "-f", което никога не е било така.
- Пътищата, за които индексът е казал с "add -N", все още не са в индекса, но няколко команда се държаха, сякаш вече са вредни.
- Също така включва малка документация и тестови актуализации.
Елиминираната команда "да", използвана в нашите тестови скриптове, е изгладена, за да не прекарва твърде много време, генерирайки ненужни резултати, които не се използват, за да помогне на тези, които тестват на Windows, където няма да спрат, към липсата на SIGPIPE.
Какво е новото във версия 2.6.4:
- Скриптът "configure" не тества правилно -lpthread, което разстройва някои линкове.
- Добавете поддръжка за разговор http / https over socks proxy.
- Поправка за преносимост за Windows, която може да презапише променлива $ SHELL, използвайки пътища без POSIX.
- Сега ние постоянно позволяваме на всички куки да игнорират стандартния си вход, вместо да се оплакват от SIGPIPE.
- Коригирайте командата за кошче в приноса си.
- Поставете теста за преносимост на темата в v2.6.1.
- Разрешете разширението tilde в някои променливи 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 interpret-trailers" да се изпълняват извън хранилището на Git.
- Създайте правилен "мръсен" маркер за инструкциите на shell, дори когато сме на осиротяло или неродено клонче.
- Някои ъгълни случаи са били фиксирани в съответствие с низове, направено в "git status".
- Общото изпълнение на SHA1_Update () на Apple не изисква повече от 4GB в даден момент и сега разполагаме с решение за компилиране.
Какво е новото във версия 2.5.3:
- Експерименталната неекранирана кеш функция е бъг, когато участват пътеки с няколко нива на поддиректории.
- Последните версии на scripted "git am" имат регресия на производителността в кодовата линия "git am - skip", която вече не съществува във вградената версия на фронта "master". Коригирайте регресията в последната сценарирана версия, която се показва в трасето за поддръжка 2.5.x и по-старите.
Какво е новото във версия 2.4.6:
- "git fetch --depth =" и "git clone --depth =" издадоха плитка заявка за прехвърляне дори на качващ пакет, който не поддържа тази възможност.
- "git fsck", използван за игнориране на липсващи или невалидни обекти, записани в reflog.
- Изпълнението на tcsh пише скрипт за bash, но това би се провалило за потребителите, които са настроили нощувка.
- Последните актуализации на Mac OS X нарушават логиката, за да установят, че устройството е на променливотоковото захранване в примерния скрипт pre-auto-gc.
- "git формат - patch --ignore-if-upstream A..B" не обичаше да се храни с тагове като гранични ангажименти.
- Също така съдържа typofixes, актуализации на документацията и тривиален код
- чисти прозорци.
Какво е новото във версия 2.4.2:
- "git rev-list - objects $ old --not --all", за да видите дали всичко, което е достъпно от $ old вече е свързано към съществуващите референции, е много неефективно.
- "Хеш-обект -литерално", въведен във версия 2.2, не е готов да вземе наистина дълго име на обект.
- "git rebase - quiet" не беше съвсем тихо, когато няма какво да се направи.
- Изпълнението на стойността на параметъра "log -decorate =" е неправилно.
- "Филтърно-клоново" съобщение за повреда в регистрационния файл, което завършва с непълна линия на платформи с някои "изпълнени" реализации, които изпълняват такава линия. Работете наоколо, като избягвате да използвате "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 е станал все по-масови (т.е. на $ PATH). Спрете пренастройването на пътя, в който "git" е инсталиран на $ PATH на потребителите, тъй като това би попречило на командата за търсене на команди, на която хората зависят (например, може да не харесат версии на програми, които не са свързани с Git в / usr / bin и искат да да ги замени, като имат различни в / usr / local / bin и да имат последната директория по-рано в $ PATH).
- Също така съдържа typofixes, актуализации на документацията и почистване на тривиалния код.
Коментари не е намерена