GIT

Screenshot Software:
GIT
Szczegóły programowe:
Wersja: 2.16.0 Aktualizowane
Filmu: 20 Jan 18
Wywoływacz: Junio C Hamano
Licencja: Wolny
Popularność: 64

Rating: 3.0/5 (Total Votes: 1)

Git to jeden z najpopularniejszych systemów kontroli wersji rozproszonych, opisywany przez programistów na całym świecie jako usługa numer jeden VCS. Działa tylko z terminala, ale kilka front-endów jest dostępnych do pobrania.

Jest to darmowa i otwarta aplikacja systemu kontroli wersji, która może obsłużyć zarówno duże, jak i małe projekty z maksymalną wydajnością i szybkością. Program można łatwo opisać jako mały, szybki i rozprowadzany.


Opcje wiersza poleceń

Program zawiera garść poleceń, które mogą być łatwo zapamiętane przez każdego użytkownika. Wszystkie operacje są wykonywane lokalnie i zostały zaprojektowane do pracy z jądrem Linux.

Dołączone polecenia to dodawanie, dzielenie, rozgałęzienie, kasowanie, klonowanie, zatwierdzanie, porównywanie, pobieranie, grep, init, log, scalanie, mv, pull, push, rebase, reset, rm, show, status i tag. Możesz łatwo dowiedzieć się, co robi każde polecenie, uruchamiając polecenie git --help z okna terminala.


Funkcje na pierwszy rzut oka

Korzystając z Git, użytkownicy będą mogli dodawać pliki, gałęzie kasowania lub ścieżki, klonować repozytoria, tworzyć puste repliki Git, dołączać do wielu historii rozwoju, wyświetlać status drzewa roboczego, rejestrować zmiany, a także tworzyć, wyświetlać lub usuń gałęzie.

Ponadto aplikacja umożliwia użytkownikom przeglądanie zmian między zatwierdzeniami i drzewami roboczymi, drukowanie wierszy pasujących do wzorca, przeglądanie dzienników zatwierdzania, pobieranie poprawek i obiektów, zmianę nazwy lub przenoszenie plików, dowiązań symbolicznych i katalogów, aktualizowanie zdalnych odwołań i usuwanie pliki z drzewa roboczego.


Istnieją różne graficzne interfejsy

Nawet jeśli jest to oprogramowanie obsługujące wyłącznie linię poleceń, dostępne są różne graficzne interfejsy użytkownika (GUI), w tym git-cola, SmartGit, GitEye, giggle i gitg. Projekt wyklucza narzędzia SCM (Software Configuration Management), takie jak CVS, Subversion, ClearCase i Perforce, dzięki tanim lokalnemu rozgałęzieniu, wielu przepływom pracy i wygodnym obszarom pomostowym.


Dolna linia

Podsumowując, Git to darmowy system kontroli wersji, który charakteryzuje się błyskawiczną wydajnością, jest łatwy do opanowania i ma bardzo mały ślad. Dzięki Git możesz wykonywać bezstratne przełączanie kontekstów, oparte na rolach linie kodu, przepływ pracy oparty na funkcjach i jednorazowe eksperymentowanie.

Co nowego w tym wydaniu:

  • Funkcja pomocnika do odczytu pojedynczej całej linii do strbuf omyłkowo wywołał błąd OOM w EOF w pewnych warunkach, które zostały naprawione.
  • Oprócz "cc: # cruft", "cc: a@dd.re.ss # cruft". nauczył się "git send-email" & quot; jako ważny sposób poinformowania go, że musi również wysłać kopię węgla do sekcji zwiastuna.
  • Napraw regresję na "gitk --bisect" przez ostatnią aktualizację.
  • W przeciwieństwie do & gt; git commit-tree & lt; plik ", git commit-tree -F file & quot; nie przekazał treści pliku dosłownie, a zamiast tego uzupełnił niekompletny wiersz na końcu, jeśli istnieje. Ta ostatnia została zaktualizowana, aby pasowała do zachowania poprzedniego.
  • "archiwum git", szczególnie gdy jest używane z pathspec, zapisywało pusty katalog w swoich wynikach, mimo że Git nigdy tego nie robi. Zostało to naprawione.
  • Zabezpieczenie przed błędami API, które powoduje również blokowanie ostrzeżeń z GCC.
  • "git gc" próbuje uniknąć uruchamiania dwóch instancji jednocześnie, odczytując i pisząc pid / host z i do pliku blokady; używał nieprawidłowego formatu fscanf () podczas czytania, który został poprawiony.
  • Linijka testowa została nauczona, że ​​nie lubimy "echo -e".
  • Kod cmp.std.c nitpick.
  • "git opisuj --match" nauczył się przyjmować wiele wzorców w seriach v2.13, ale funkcja ignorowała wzorce po pierwszym i nie działała wcale. Zostało to naprawione.
  • "git cat-file --textconv & quot; niedawno rozpoczęto segfault, który został poprawiony.
  • Wbudowany wzorzec do wykrywania nagłówka funkcji ". dla HTML nie pasuje ... elementów bez żadnych atrybutów, które zostały naprawione.
  • "git mailinfo" był luźny w dekodowaniu cytowanych śmieci, które można wydrukować i wyprodukować, gdy dwie litery za znakiem równości nie są szesnastkowe. Zostało to naprawione.
  • Dokumentacja dla "-X" dla scaleń została wprowadzona w błąd, sugerując, że "-s" ich " istnieje, co nie ma miejsca.
  • Przeliteruj nazwę naszego systemu jako "Git". w wyjściu ze skryptu żądania-wyciągania.
  • Naprawiono garstkę problemów z dostępem do pamięci zidentyfikowanych przez valgrind.
  • Backports moralny odpowiednik poprawki 2015 do emulacji ankiety z gnulib upstream, aby naprawić sporadyczne przerwy w HPE NonStop.
  • W "- format = ..." opcja "git for-each-ref" polecenie (i jego przyjaciele, tj. tryb listy "gałąź git / znacznik"), "% (atom:)" (na przykład "% (refname:)", "% (body:)" użyte do błędu, zamiast tego traktuj je tak, jakby dwukropek i pusty ciąg, który za nim był, nie istniały.
  • Użytkownicy z & quot; color.ui = always & quot; w ich konfiguracji zostały zerwane przez ostatnią zmianę, która spowodowała, że ​​polecenia instalacyjne zwróciły na nie uwagę jako łatę utworzoną wewnętrznie przez "git add -p"; były kolorowe (heh) i stały się bezużyteczne. Zostało to naprawione.
  • "gałąź git -M a b" podczas gdy na gałęzi, która jest całkowicie niezwiązana z żadną gałęzią a lub gałęzią b, zachowuje się niewłaściwie, gdy użyto wielu worków. Zostało to naprawione.
  • "git fast-export & quot; z opcją -M / -C wydaną "copy" instrukcja na ścieżce, która jest jednocześnie modyfikowana, co było niepoprawne.
  • Polecenie punktu kontrolnego "git fast-import" nie opróżniło aktualizacji do poprawek i znaków, chyba że przynajmniej jeden obiekt został utworzony od ostatniego punktu kontrolnego, który został poprawiony, ponieważ takie rzeczy mogą się zdarzyć bez tworzenia żadnego nowego obiektu.
  • Skrypty do kierowania TravisCI zostały zreorganizowane, a następnie zaimplementowano optymalizację w celu uniknięcia cykli wydatków w oddziale, którego wskazówka została zaimplementowana.
  • & quot; git fetch: & quot; zezwala na nazwę obiektu z boku, gdy druga strona akceptuje takie żądanie, ponieważ Git v2.5, ale dokumentacja pozostała nieaktualna.
  • Usunięto regresję w wersji 2.11, która spowodowała, że ​​kod do odczytu listy alternatywnych magazynów obiektów przekroczył koniec ciągu znaków.

Co nowego w wersji 2.15.1:

  • Funkcja pomocnika do odczytu pojedynczej całej linii do strbuf omyłkowo wywołał błąd OOM w EOF w pewnych warunkach, które zostały naprawione.
  • Oprócz "cc: # cruft", "cc: a@dd.re.ss # cruft". nauczył się "git send-email" & quot; jako ważny sposób poinformowania go, że musi również wysłać kopię węgla do sekcji zwiastuna.
  • Napraw regresję na "gitk --bisect" przez ostatnią aktualizację.
  • W przeciwieństwie do & gt; git commit-tree & lt; plik ", git commit-tree -F file & quot; nie przekazał treści pliku dosłownie, a zamiast tego uzupełnił niekompletny wiersz na końcu, jeśli istnieje. Ta ostatnia została zaktualizowana, aby pasowała do zachowania poprzedniego.
  • "archiwum git", szczególnie gdy jest używane z pathspec, zapisywało pusty katalog w swoich wynikach, mimo że Git nigdy tego nie robi. Zostało to naprawione.
  • Zabezpieczenie przed błędami API, które powoduje również blokowanie ostrzeżeń z GCC.
  • "git gc" próbuje uniknąć uruchamiania dwóch instancji jednocześnie, odczytując i pisząc pid / host z i do pliku blokady; używał nieprawidłowego formatu fscanf () podczas czytania, który został poprawiony.
  • Linijka testowa została nauczona, że ​​nie lubimy "echo -e".
  • Kod cmp.std.c nitpick.
  • "git opisuj --match" nauczył się przyjmować wiele wzorców w seriach v2.13, ale funkcja ignorowała wzorce po pierwszym i nie działała wcale. Zostało to naprawione.
  • "git cat-file --textconv & quot; niedawno rozpoczęto segfault, który został poprawiony.
  • Wbudowany wzorzec do wykrywania nagłówka funkcji ". dla HTML nie pasuje ... elementów bez żadnych atrybutów, które zostały naprawione.
  • "git mailinfo" był luźny w dekodowaniu cytowanych śmieci, które można wydrukować i wyprodukować, gdy dwie litery za znakiem równości nie są szesnastkowe. Zostało to naprawione.
  • Dokumentacja dla "-X" dla scaleń została wprowadzona w błąd, sugerując, że "-s" ich " istnieje, co nie ma miejsca.
  • Przeliteruj nazwę naszego systemu jako "Git". w wyjściu ze skryptu żądania-wyciągania.
  • Naprawiono garstkę problemów z dostępem do pamięci zidentyfikowanych przez valgrind.
  • Backports moralny odpowiednik poprawki 2015 do emulacji ankiety z gnulib upstream, aby naprawić sporadyczne przerwy w HPE NonStop.
  • W "- format = ..." opcja "git for-each-ref" polecenie (i jego przyjaciele, tj. tryb listy "gałąź git / znacznik"), "% (atom:)" (na przykład "% (refname:)", "% (body:)" użyte do błędu, zamiast tego traktuj je tak, jakby dwukropek i pusty ciąg, który za nim był, nie istniały.
  • Użytkownicy z & quot; color.ui = always & quot; w ich konfiguracji zostały zerwane przez ostatnią zmianę, która spowodowała, że ​​polecenia instalacyjne zwróciły na nie uwagę jako łatę utworzoną wewnętrznie przez "git add -p"; były kolorowe (heh) i stały się bezużyteczne. Zostało to naprawione.
  • "gałąź git -M a b" podczas gdy na gałęzi, która jest całkowicie niezwiązana z żadną gałęzią a lub gałęzią b, zachowuje się niewłaściwie, gdy użyto wielu worków. Zostało to naprawione.
  • "git fast-export & quot; z opcją -M / -C wydaną "copy" instrukcja na ścieżce, która jest jednocześnie modyfikowana, co było niepoprawne.
  • Polecenie punktu kontrolnego "git fast-import" nie opróżniło aktualizacji do poprawek i znaków, chyba że przynajmniej jeden obiekt został utworzony od ostatniego punktu kontrolnego, który został poprawiony, ponieważ takie rzeczy mogą się zdarzyć bez tworzenia żadnego nowego obiektu.
  • Skrypty do kierowania TravisCI zostały zreorganizowane, a następnie zaimplementowano optymalizację w celu uniknięcia cykli wydatków w oddziale, którego wskazówka została zaimplementowana.
  • & quot; git fetch: & quot; zezwala na nazwę obiektu z boku, gdy druga strona akceptuje takie żądanie, ponieważ Git v2.5, ale dokumentacja pozostała nieaktualna.
  • Usunięto regresję w wersji 2.11, która spowodowała, że ​​kod do odczytu listy alternatywnych magazynów obiektów przekroczył koniec ciągu znaków.

Co nowego w wersji 2.15.0:

  • Funkcja pomocnika do odczytu pojedynczej całej linii do strbuf omyłkowo wywołał błąd OOM w EOF w pewnych warunkach, które zostały naprawione.
  • Oprócz "cc: # cruft", "cc: a@dd.re.ss # cruft". nauczył się "git send-email" & quot; jako ważny sposób poinformowania go, że musi również wysłać kopię węgla do sekcji zwiastuna.
  • Napraw regresję na "gitk --bisect" przez ostatnią aktualizację.
  • W przeciwieństwie do & gt; git commit-tree & lt; plik ", git commit-tree -F file & quot; nie przekazał treści pliku dosłownie, a zamiast tego uzupełnił niekompletny wiersz na końcu, jeśli istnieje. Ta ostatnia została zaktualizowana, aby pasowała do zachowania poprzedniego.
  • "archiwum git", szczególnie gdy jest używane z pathspec, zapisywało pusty katalog w swoich wynikach, mimo że Git nigdy tego nie robi. Zostało to naprawione.
  • Zabezpieczenie przed błędami API, które powoduje również blokowanie ostrzeżeń z GCC.
  • "git gc" próbuje uniknąć uruchamiania dwóch instancji jednocześnie, odczytując i pisząc pid / host z i do pliku blokady; używał nieprawidłowego formatu fscanf () podczas czytania, który został poprawiony.
  • Linijka testowa została nauczona, że ​​nie lubimy "echo -e".
  • Kod cmp.std.c nitpick.
  • "git opisuj --match" nauczył się przyjmować wiele wzorców w seriach v2.13, ale funkcja ignorowała wzorce po pierwszym i nie działała wcale. Zostało to naprawione.
  • "git cat-file --textconv & quot; niedawno rozpoczęto segfault, który został poprawiony.
  • Wbudowany wzorzec do wykrywania nagłówka funkcji ". dla HTML nie pasuje ... elementów bez żadnych atrybutów, które zostały naprawione.
  • "git mailinfo" był luźny w dekodowaniu cytowanych śmieci, które można wydrukować i wyprodukować, gdy dwie litery za znakiem równości nie są szesnastkowe. Zostało to naprawione.
  • Dokumentacja dla "-X" dla scaleń została wprowadzona w błąd, sugerując, że "-s" ich " istnieje, co nie ma miejsca.
  • Przeliteruj nazwę naszego systemu jako "Git". w wyjściu ze skryptu żądania-wyciągania.
  • Naprawiono garstkę problemów z dostępem do pamięci zidentyfikowanych przez valgrind.
  • Backports moralny odpowiednik poprawki 2015 do emulacji ankiety z gnulib upstream, aby naprawić sporadyczne przerwy w HPE NonStop.
  • W "- format = ..." opcja "git for-each-ref" polecenie (i jego przyjaciele, tj. tryb listy "gałąź git / znacznik"), "% (atom:)" (na przykład "% (refname:)", "% (body:)" użyte do błędu, zamiast tego traktuj je tak, jakby dwukropek i pusty ciąg, który za nim był, nie istniały.
  • Użytkownicy z & quot; color.ui = always & quot; w ich konfiguracji zostały zerwane przez ostatnią zmianę, która spowodowała, że ​​polecenia instalacyjne zwróciły na nie uwagę jako łatę utworzoną wewnętrznie przez "git add -p"; były kolorowe (heh) i stały się bezużyteczne. Zostało to naprawione.
  • "gałąź git -M a b" podczas gdy na gałęzi, która jest całkowicie niezwiązana z żadną gałęzią a lub gałęzią b, zachowuje się niewłaściwie, gdy użyto wielu worków. Zostało to naprawione.
  • "git fast-export & quot; z opcją -M / -C wydaną "copy" instrukcja na ścieżce, która jest jednocześnie modyfikowana, co było niepoprawne.
  • Polecenie punktu kontrolnego "git fast-import" nie opróżniło aktualizacji do poprawek i znaków, chyba że przynajmniej jeden obiekt został utworzony od ostatniego punktu kontrolnego, który został poprawiony, ponieważ takie rzeczy mogą się zdarzyć bez tworzenia żadnego nowego obiektu.
  • Skrypty do kierowania TravisCI zostały zreorganizowane, a następnie zaimplementowano optymalizację w celu uniknięcia cykli wydatków w oddziale, którego wskazówka została zaimplementowana.
  • & quot; git fetch: & quot; zezwala na nazwę obiektu z boku, gdy druga strona akceptuje takie żądanie, ponieważ Git v2.5, ale dokumentacja pozostała nieaktualna.
  • Usunięto regresję w wersji 2.11, która spowodowała, że ​​kod do odczytu listy alternatywnych magazynów obiektów przekroczył koniec ciągu znaków.

Co nowego w wersji 2.14.1:

  • Ta wersja przesyła dalej poprawkę dla & quot; ssh: //..." Adres URL z Git v2.7.6

Co nowego w wersji 2.9.3:

  • * Funkcja pomocnicza pobierająca treść obiektu commit i znajdująca się w jego wierszu tematu nie ignorowała wiodących pustych linii, jak to zwykle robi się w innych ścieżkach kodowych. Zignoruj ​​wiodące puste linie do dopasowania.
  • Git nie wie, jaka powinna być zawartość indeksu dla ścieżki dodanej za pomocą "git add -N", więc "git grep --cached" nie powinno pokazywać trafień (lub pokazywać brak trafień, z -L ) na takiej ścieżce, ale ta logika nie dotyczy "git grep", czyli wyszukiwania w plikach drzewa roboczego. Ale zrobiliśmy to przez pomyłkę, która została poprawiona.
  • "git rebase -i --autostash" nie przywróciło automatycznie ukrytej zmiany, gdy operacja została przerwana.
  • "git commit --amend --allow-empty-message -S" dla zatwierdzenia bez jakiejkolwiek treści wiadomości mógł błędnie zidentyfikować miejsce zakończenia nagłówka obiektu commit.
  • Więcej aktualizacji znaczników do ciągów znaków, które mają być dosłownie wpisane przez użytkownika końcowego czcionką o stałej szerokości.
  • Przez długi czas nosiliśmy komentarz w formie kodu, który mówi, że nasze kolorowe wydruki będą działały tylko wtedy, gdy użyjemy fprintf / fputs w systemie Windows, co nie ma miejsca w ciągu ostatnich kilku lat.
  • "gc.autoPackLimit", gdy jest ustawiony na 1, nie powinien uruchamiać przepakowywania, gdy jest tylko jeden pakiet, ale kod został źle zliczony i tak się stało.
  • Jedna część "git am" posiadała dziwaczną funkcję pomocniczą, która nazywała rzeczy spoza "jego", w przeciwieństwie do wywoływania tego, co mamy "nasze", które nie było neutralne płciowo, a także niespójne z resztą systemu, w którym rzeczy zewnętrzne są zwykle nazywane "ich" w przeciwieństwie do "naszych".
  • Struktura testowa nauczyła się nowej helperki test_match_signal, aby sprawdzić, czy kod wyjścia nie zostanie zabity przez oczekiwany sygnał.
  • "git blame -M" przegapił pojedynczą linię, która została przeniesiona do pliku.
  • Napraw niedawno wprowadzone ścieżki kodowe, które są zaangażowane w równoległe operacje modułów częściowych, które porzuciły czytanie za wcześnie i mogły zmarnować procesor podczas próby zapisania pod warunkiem przypadku narożnego.
  • "git grep -i" został nauczony, aby poprawnie składał kopie w non-ascii locales.
  • Test bezwarunkowo użyty "mktemp" dowiedział się, że polecenie niekoniecznie jest dostępne wszędzie.
  • "plik git win" zezwolił na sprawdzenie linii linii w niezatwierdzonej, niepublikowanej zawartości "pliku", ale odmówił, gdy "plik" nie pojawił się w bieżącym zatwierdzeniu. Gdy "plik" został utworzony przez zmianę nazwy istniejącego pliku (ale zmiana nie została zatwierdzona), to ograniczenie było niepotrzebnie napięte.
  • "git add -N dir / file & amp; git write-tree" wygenerowało niepoprawne drzewo, gdy istnieją inne ścieżki w tym samym katalogu, które sortuje po "pliku".
  • "git fetch http: // user: pass @ host / repo ..." wyszorował część userinfo, ale "git push" nie.
  • Naprawiono stary błąd, który powodował, że "git diff --ignore-space-at-eol" źle się spisał.
  • "git notes merge" miał kod, aby zobaczyć, czy ścieżka istnieje (i jeśli się nie powiedzie), a następnie otwiera ścieżkę do zapisu (jeśli nie). Zastąp go otwartym z O_EXCL.
  • "git pack-objects" i "git-index-pack" najczęściej działają z off_t gdy mówimy o przesunięciu obiektów w pliku packfile, ale było kilka miejsc, które używały "unsigned long" aby utrzymać tę wartość, prowadząc do niezamierzonego obcięcia.
  • Ostatnia aktualizacja "git daemon" próbuje włączyć KEEPALIVE na poziomie gniazd, ale kiedy jest tworzona przez inetd, standardowy deskryptor pliku wejściowego niekoniecznie musi być podłączony do gniazda. Zablokuj błąd ENOTSOCK z setsockopt ().
  • Ostatni FreeBSD przestał udostępniać perl w / usr / bin / perl; przełącz domyślną wbudowaną ścieżkę na / usr / local / bin / perl na niezbyt starożytnych wersjach FreeBSD.
  • "status git" nauczył się sugerować "scalanie --abort" podczas konfliktu, tak jak już sugeruje "rebase --abort" podczas konfliktu w konflikcie.
  • Źródła .c / .h są oznaczone jako takie w naszym pliku .gitattributes, więc "git diff -W" i znajomi będą działać lepiej.
  • Istniejący test wygenerowany przez autoconf dla potrzeby połączenia z biblioteką pthread nie sprawdzał wszystkich funkcji z bibliotek pthread; ostatnie FreeBSD ma pewne funkcje w libc, ale nie inne, i błędnie uważaliśmy, że linkowanie z libc wystarcza, gdy nie jest.
  • Zezwalaj na testy demona HTTP w testach Travis CI.
  • Użytkownicy funkcji parse_options_concat () muszą wcześniej alokować dodatkowe gniazda i wypełniać je opcją OPT_END (), gdy chcą dynamicznie decydować o zestawie obsługiwanych opcji, co powoduje, że kod jest podatny na błędy i trudny do odczytania. Zostało to poprawione przez ulepszenie interfejsu API w celu przydzielenia i zwrócenia nowej kopii tablicy "struct option".
  • Użycie strbuf w "git rm" do zbudowania nazwy pliku do usunięcia było trochę nieoptymalne, co zostało naprawione.
  • "git commit --help" said "--no-verify" to tylko pomijanie haka przed zatwierdzeniem, i nie powiedział, że również pomijało hook commit-msg.
  • "git merge" w Git v2.9 uczył się zabraniać łączenia niepowiązanych linii historii domyślnie, ale to jest dokładnie to, co jest trybem "--rejoin" "poddrzewa git" (w contrib /) chce to zrobić. "git subtree" nauczył się używać opcji "--allow-unrelated-histories", aby zastąpić domyślną.
  • Procedura kompilacji pomocnika "git persistent-https" (w contrib /) została zaktualizowana, aby można ją było utworzyć przy użyciu nowszych wersji aplikacji Go.
  • Zastosowano optymalizację w "git diff $ treeA $ treeB", aby wypożyczyć już wyewidencjonowaną kopię w drzewie roboczym, gdy wiadomo, że jest taka sama, jak porównywalna kropla, oczekując, że otwarta / mmap takiej plik jest szybszy niż czytanie go ze składnicy obiektów, co wiąże się z nadmuchiwaniem i stosowaniem delty. Zostało to jednak uruchomione nawet wtedy, gdy wyewidencjonowana kopia musi przejść przez konwersję konwersji na git (w tym czysty filtr), co pokonuje cały punkt optymalizacji. Optymalizacja została wyłączona, gdy konwersja jest konieczna.
  • "git -c grep.patternType = rozszerzony log --basic-regexp" źle się obsługuje, ponieważ wewnętrzny interfejs API do uzyskiwania dostępu do maszyny grep nie był dobrze zaprojektowany.
  • Port Windows zawiedzie niektóre testy w t4130, ze względu na brak inum w zwracanych wartościach przez emulację lstat (2).
  • Znaki na etykiecie pokazanej dla tagów / referencji dla zatwierdzeń w wynikach "gitweb" są teraz poprawnie chronione przed prawidłowym wyjściem HTML.
  • FreeBSD może kłamać, gdy spytany mtime o katalog, który sprawił, że cofnięty kod pamięci podręcznej powrócił do powolnej ścieżki, co z kolei spowodowało niepowodzenie testów w t7063, ponieważ chciało zweryfikować zachowanie szybkiej ścieżki.
  • Ostrzeżenia kompilatora szumów dla biblioteki netmalloc (w compat /).
  • Dokumentacja API dla hashmap była niejasna, jeśli hashmap_entry można bezpiecznie wyrzucić bez żadnej innej uwagi. Powiedz, że jest to bezpieczne.
  • Niezbyt niedawne przepisanie "git am", które zaczęło wywoływać wewnętrzne wywołania w maszynie commitów, miało niezamierzony regres, w tym, bez względu na to, ile sekund zajęło zastosowanie wielu poprawek, wynikowy znacznik czasu dla wystawianych zatwierdzeń były takie same.
  • "git difftool ..." uruchomione w podkatalogu nie udało się zinterpretować ścieżek względem tego katalogu, który został naprawiony.

Co nowego w wersji 2.9.1:

  • Gdy "demon git" jest uruchamiany bez określenia - [init-] timeout, połączenie od klienta, który cicho przechodzi w tryb offline, może się zawiesić na długi czas, marnując zasoby. KEEPALIVE na poziomie gniazda został włączony, aby system operacyjny mógł zauważyć takie nieudane połączenia.
  • Polecenia z rodziny `git log` pobierają% C (auto) w niestandardowym ciągu formatującym. To bezwarunkowo zmieniło kolor, ignorując --no-color lub z --color = auto, gdy wyjście nie jest podłączone do tty; zostało to poprawione, aby format naprawdę zachowywał się jak "auto".
  • "git rev-list --count", której długość spaceru jest ograniczona opcją "-n" nie działała dobrze przy zliczaniu zoptymalizowanym pod kątem indeksu bitmap.
  • "git show -W" (rozszerz porcje, aby pokryć całą funkcję, ograniczoną przez wiersze pasujące do wzorca "funcname") używaną do wyświetlenia całego pliku, gdy zmiana dodaje całą funkcję na końcu pliku, co zostało naprawione.
  • Zestaw dokumentacji został zaktualizowany w taki sposób, aby dosłowne polecenia, zmienne konfiguracyjne i zmienne środowiskowe były konsekwentnie składane czcionką o stałej szerokości i pogrubione na stronach podręcznika.

  • Podkomenda
  • "git svn propset", która została dodana w ciągu 2,3 ​​dnia, jest teraz udokumentowana.
  • Dokumentacja stara się konsekwentnie przeliterować "GPG"; podczas nawiązywania do konkretnej nazwy programu używa się "gpg".
  • "git reflog" zatrzymał się po zobaczeniu wpisu, który oznacza zdarzenie tworzenia gałęzi (inaczej "nienarodzone"), co spowodowało, że wyglądało na to, że reflog został obcięty.
  • Skrypt z podpowiedziami git (w contrib /) nie był przyjazny dla tych, którzy używają "set -u", który został naprawiony.
  • W celu uniknięcia tego, zmieniono ścieżkę kodową, która wykorzystała alloca (3) do umieszczenia nieograniczonej ilości danych na stosie.
  • "git update-index --add --chmod = + x file" może być użyteczny jako luka ucieczki, ale nie jest przyjazną rzeczą, którą można wymusić dla osób, które muszą regularnie go używać. Zamiast tego można użyć "git add --chmod = + x file".
  • Buduj ulepszenia dla gnome-keyring (w contrib /)
  • "status git" użyty do powiedzenia "katalog roboczy", gdy oznaczało "drzewo robocze".
  • Komentarze na temat źle działających powłok FreeBSD zostały wyjaśnione za pomocą numeru wersji (9.x i wcześniej są uszkodzone, nowsze są w porządku).
  • "git cherry-pick A" działa na nienarodzoną gałąź, ale "git cherry-pick A..B" nie.
  • "git add -i / -p" nauczył się honorować diff.compactionHeuristic experimental knob, dzięki czemu użytkownik może pracować na tym samym łączu dzielonym co "git diff".
  • "log - graph --format =" dowiedział się, że "% & gt; | (N)" określa szerokość względem lewej krawędzi terminala, a nie w stosunku do obszaru do narysowania tekstu znajdującego się po prawej stronie przodków -kopiowa sekcja. Przyjmuje teraz także wartość ujemną N, co oznacza, że ​​limit kolumny jest względny w stosunku do prawej krawędzi.
  • Reguła własności dla części pamięci, która zawiera odwołania do pobranych w "git fetch", była skręcona, co zostało wyczyszczone.
  • "git bisect" wywołuje wewnętrzne wywołanie "git diff-tree", gdy bisection znajduje winnego, ale to wywołanie nie zainicjowało struktury danych, aby poprawnie przekazać do API diff-tree.
  • Udokumentowano formaty różnych danych (i sposoby ich potwierdzania), w których używamy podpisu GPG.
  • Napraw niezamierzoną regresję w v2.9, która przerywa "klonowanie - dłuta", która powraca do submodułów przez wymuszenie klonowania podmodułów płytko, czego wiele instancji serwera, które znajdują się przed modułami, nie jest przygotowanych.
  • Napraw niepotrzebne marnowanie w idiomatycznym używaniu ": $ {VAR = default}", aby ustawić domyślną wartość, nie ujmując jej w podwójne cudzysłowy.
  • Niektóre specyficzne dla platformy kody miały nie-ANSI ścisłe deklaracje funkcji C, które nie przyjmują żadnych parametrów, które zostały poprawione.
  • Wewnętrzny kod użyty do pokazania lokalnego przesunięcia strefy czasowej nie jest przygotowany do obsługi znaczników czasu po roku 2100 i nadał fałszywej wartości odsłuchowej dzwoniącemu. Zamiast tego użyj bardziej łagodnego wyglądu +0000 i pozwól na "git log" w takim przypadku, zamiast przerwać.
  • Jedna z czterech wywołań readlink (1) w naszym pakiecie testowym została przepisana, aby test mógł działać na systemach bez polecenia (inne są w ramach testowania valgrind i t9802).
  • t / perf needs / usr / bin / time z rozszerzeniem GNU; jego wywołanie jest aktualizowane na "gtime" w Darwin.
  • Naprawiono błąd, który powodował "git p4" podczas pracy w trybie szczegółowym, w celu niepoprawnego raportowania ścieżek, które zostały pominięte z powodu prefiksu gałęzi. polecenie powiedziało "Ignorowanie pliku poza prefiksem" dla ścieżek _podległych _.
  • Dokumentacja na najwyższym poziomie "git help git" nadal wskazywała na zestaw dokumentacji hostowany w nieistniejącym już repozytorium kodu Google. Zaktualizuj go, aby zamiast niego wskazywał https://git.github.io/htmldocs/git.html.

Co nowego w wersji 2.9.0:



Nowość w GIT 2.8.1 (5 kwietnia 2016 r.)

Co nowego w wersji 2.8.1:

  • "make rpmbuild" cel został uszkodzony, ponieważ jego wejście, git.spec.in, nie zostało zaktualizowane, aby pasowało do pliku, który opisuje, który został ostatnio zmieniony. Zostało to naprawione.

Co nowego w wersji 2.7.3:

  • Tradycyjnie testy wypróbowujące polecenia pracujące nad zawartością w drzewie roboczym miały nazwy "worktree" w ich nazwach plików, ale z ostatnio dodaną podkomendą "git worktree", której testy również są nazywane podobnie, ma ona trudniej je odróżnić. Tradycyjne testy zostały zmienione, aby zamiast nich używać "drzewa roboczego", aby je rozróżnić.
  • Wiele ścieżek kodowych zapomina sprawdzić wartość zwracaną przez git_config_set (); funkcja jest wykonana tak, aby umrzeć (), aby upewnić się, że nie wykonujemy żadnych czynności, gdy ustawienie zmiennej konfiguracyjnej nie powiodło się.
  • Obsługa błędów podczas pisania do naszego wewnętrznego asynchronicznego procesu została udoskonalona, ​​co zmniejsza efekt łuszczenia w naszych testach.
  • "git show" HEAD: Foo [BAR] Baz "" nie interpretował argumentu jako rev, tj. obiektu określonego przez ścieżkę ze znakami wieloznacznymi w obiekcie drzewa.
  • "git rev-parse --git-common-dir" użyte w funkcji worktree niepoprawnie po uruchomieniu z podkatalogu.
  • Podkomenda "v (iew)" interaktywnej komendy "git am -i" została złamana w czasie 2.6.0, gdy polecenie zostało przepisane w C.
  • "git merge-tree" używany do mishandle "obustronnie dodany" konflikt z własnym "stworzyć fałszywy plik przodka, który ma wspólne części tego, co obie strony dodały i wykonują 3-drożne scalanie" logiki; zostało to zaktualizowane w celu użycia zwykłego "trójstronnego scalania z pustym obiektem typu blob jako fałszywego wspólnego pliku nadrzędnego" stosowanego w pozostałej części systemu.
  • Reguła własności pamięci dla funkcji fill_textconv (), która była nieco trudna, została udokumentowana nieco lepiej.
  • W dokumentacji nie podano wyraźnie, że tryb "prosty" jest teraz domyślny dla "git push", gdy nie jest ustawiona konfiguracja push.default.
  • Ostatnie wersje GNU grep są bardziej szczegółowe, gdy ich dane wejściowe zawierają arbitralne dane binarne, których używają niektóre nasze testy. Przepisz testy, aby ominąć problem.
  • Funkcja pomocnicza "moduł podrzędny git" używa odkąd v2.7.0 do listy modułów, które pasują do argumentu pathspec podanego do jego podpoleceń (np. "moduł podmodułu") został naprawiony.
  • "git config section.val value" w celu ustawienia wartości w pliku konfiguracyjnym na jeden repozytorium nie powiodło się, gdy został uruchomiony poza jakimkolwiek repozytorium, ale nie podano poprawnie przyczyny.
  • Kod do odczytu danych paczki przy użyciu przesunięć zapisanych w pliku idx paczki został dokładniej sprawdzony pod kątem ważności danych w idxie.

Co nowego w wersji 2.7.2:

  • Maszyny łączące niskiego poziomu nauczyły się używać zakończenia linii CRLF podczas wstawiania znaczników konfliktu do scalonych treści, które same są zakończone wierszem CRLF.
  • "git worktree" miał zepsuty kod, który próbował automatycznie naprawić ewentualne niespójności, które wynikają z przeniesienia przez użytkowników końcowych do różnych miejsc bez informowania Gita (oryginalne repozytorium musi utrzymywać backpointers na swoich stronach, ale "mv" prowadzone przez użytkowników końcowych, którzy nie są obeznani z tym faktem, oczywiście ich nie poprawią), co pogorszyło sytuację po uruchomieniu.
  • "git push - force-with-lease" nauczył się raportować, czy konieczne jest wymuszenie (lub szybkie przekazanie).
  • Emulowane polecenie "tak" używane w naszych skryptach testowych zostało zmodyfikowane tak, aby nie wydawało zbyt dużo czasu na generowanie zbędnych danych wyjściowych, które nie są używane, aby pomóc tym, którzy testują w systemie Windows, gdzie nie zatrzymałoby się, dopóki nie wypełni bufora potoku z powodu na brak SIGPIPE.
  • System zaplecza vimdiff dla "git mergetool" został zmodyfikowany w taki sposób, aby aranżować i buforować liczby w kolejności zgodnej z oczekiwaniami większości osób czytających od lewej do prawej, a następnie z góry do dołu i przypisywać bufory 1 2 3 4 "mentalnie" do lokalnych zdalnych okien połączeniowych opartych na tej kolejności.
  • Dokumentacja "git clean" została poprawiona; wspomniano, że .git / modules / * są usuwane przez podanie dwóch "-f", co nigdy nie miało miejsca.
  • Ścieżki, o których informowano o indeksie za pomocą opcji "add -N", nie są jeszcze w indeksie, ale kilka poleceń zachowało się tak, jakby były już szkodliwe.
  • Zawiera także niewielkie aktualizacje dokumentacji i testów.

Co nowego w wersji 2.6.4:

  • Skrypt "configure" nie testował poprawnie opcji -lpthread, co zakłóca działanie niektórych łączników.
  • Dodaj obsługę rozmawiających http / https przez proxy skarpet.
  • Poprawka przenośności dla systemu Windows, która może przepisać zmienną $ SHELL przy użyciu ścieżek innych niż POSIX.
  • Teraz konsekwentnie zezwalamy wszystkim hakerom na ignorowanie ich standardowego wejścia, zamiast git narzekać na SIGPIPE.
  • Napraw cytowanie powłoki w skrypcie contrib.
  • Sprawdź poprawność przenośności dla tematu w wersji 2.6.1.
  • Pozwól na rozszerzenie tyldy w niektórych zmiennych konfiguracyjnych http.
  • Podaj przydatny specjalny przypadek "diff / show - word-diff-regex =." jako przykład w dokumentacji.
  • Naprawiono narożną skrzynkę w gałęzi filtra.
  • Ustaw git-p4 na odłączonej głowie.
  • Objaśnienie dokumentacji dla "check-ignore" bez "--verbose".
  • Podobnie jak drzewo robocze jest czyszczone, gdy użytkownik anulował przesyłanie w P4Submit.applyCommit (), posprzątaj bałagan, jeśli "p4 submit" nie powiedzie się.
  • Posiadanie resztki pliku .idx bez odpowiedniego pliku .pack w repozytorium szkodzi wydajności; "git gc" nauczył się je przycinać.
  • Kod służący do przygotowania drzewa roboczego katalogu tymczasowego dla funkcji "dir-diff" spowodował, że dowiązania symboliczne nie muszą być kopiowane (lub dowiązane symbolicznie) do obszaru tymczasowego, ponieważ kod zawiera już specjalne przypadki i nadpisuje im. Poza tym nie należy próbować obliczać nazwy obiektu celu dowiązania symbolicznego, które może nawet nie istnieć lub może być katalogiem.
  • Nie można było pokonać skonfigurowanej zmiennej rebase.autostash z wiersza poleceń, ponieważ brakowało "git rebase --no-autostash".
  • Pozwól, aby "zwiastuny interpretacji git" działały poza repozytorium Git.
  • Przygotuj poprawny "brudny" znacznik dla monitów powłoki, nawet gdy jesteśmy na sierocińcu lub nienarodzonej gałęzi.
  • Niektóre przypadki narożne zostały naprawione w dopasowaniu ciągów w "statusie git".
  • Typowa implementacja SHA1_Update () w Apple'a nie zajmuje więcej niż 4 GB, a teraz mamy dla niego obejście kompilacji.

Co nowego w wersji 2.5.3:

  • Eksperymentalna funkcja nieśledzonej pamięci podręcznej była błędna, gdy chodzi o ścieżki z kilkoma poziomami podkatalogów.
  • Ostatnie wersje skryptu "git am" mają regresję wydajności w "git am --skip" codepath, która nie istnieje już w wersji wbudowanej na "master" front. Napraw regresję w ostatniej wersji skryptowej, która pojawia się w utworze konserwacyjnym 2.5.x i starszym.

Co nowego w wersji 2.4.6:

  • "git fetch --depth =" i "git clone --depth =" wysłały płytkie żądanie przesłania nawet do upload-pack, który nie obsługuje tej możliwości.
  • "git fsck" używane do zignorowania brakujących lub nieprawidłowych obiektów zapisanych w reflogie.
  • Uzupełnianie tcsh zapisuje skrypt skryptu bash, ale nie byłoby to możliwe dla użytkowników z zestawem noclobber.
  • Najnowsze aktualizacje systemu Mac OS X łamią logikę, aby wykryć, że komputer jest zasilany prądem zmiennym w przykładowym skrypcie pre-auto-gc.
  • "łatka formatu git --ignore-if-up A..B" nie lubiła być podawana jako ogranicznik.
  • Zawiera również typofixes, aktualizacje dokumentacji i banalny kod
  • porządki.

Co nowego w wersji 2.4.2:

  • "git rev-list --objects $ old --not --all", aby sprawdzić, czy wszystko, co jest osiągalne od $ old, jest już połączone z istniejącymi pozycjami, było bardzo nieefektywne.
  • "Obiekt hash --literalnie" wprowadzony w v2.2 nie był przygotowany do pobrania naprawdę długiej nazwy typu obiektu.
  • "git rebase --quiet" nie było całkiem cicho, gdy nie ma nic do zrobienia.
  • Uzupełnienie wartości parametru "log - decorate =" było niepoprawne.
  • "Filtruj" "uszkodzony dziennik zatwierdzania", który kończy się niekompletną linią na platformach z pewnymi "sed" implementacjami, które łączą taką linię. Wykonuj to, unikając używania "sed".
  • "demon git" nie buduje ze źródła w konfiguracji NO_IPV6 (regresja w wersji 2.4).
  • "git stash pop / apply" zapomniałem, aby upewnić się, że nie tylko czyste drzewo robocze jest czyste, ale także indeks jest czysty. Ta ostatnia jest ważna, ponieważ aplikacja może się konfliktować, a indeks będzie używany do rozwiązywania konfliktów.
  • Dodaliśmy $ GIT_EXEC_PATH, a ścieżka "git" jest zainstalowana w (zwykle "/ usr / bin") do $ PATH podczas wywoływania podprogramów i haków przez prawie całą wieczność, ale oryginalny przypadek użycia, który próbował obsłużyć, był na pół -bogus (tj. zainstaluj git na / opt / foo / git i uruchom go bez posiadania / opt / foo na $ PATH), a co ważniejsze, staje się coraz mniej istotny, ponieważ Git stał się bardziej popularny (tzn. użytkownicy chcieliby mieć to na ich $ PATH). Przerwij poprzedzenie ścieżki, w której "git" jest instalowany do $ PATH użytkowników, ponieważ mogłoby to zakłócać porządek wyszukiwania poleceń, od którego zależą ludzie (np. Mogą nie lubić wersji programów, które nie są powiązane z Git w / usr / bin i chcą nadpisuj je, mając inne w katalogu / usr / local / bin i przechowuj je w katalogu $ PATH).
  • Zawiera także typofixes, aktualizacje dokumentacji i trywialne czyszczenie kodu.

Podobne oprogramowanie

udr
udr

12 May 15

gitflow
gitflow

14 Apr 15

bzr-pqm
bzr-pqm

20 Feb 15

Cervisia
Cervisia

2 Jun 15

Komentarze do GIT

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!