Widziałem wiele pytań na temat metod korzystania git blame
, ale tak naprawdę ich nie rozumiem.
Widzę Blameprzycisk nad plikami w interfejsie GitHub. Po kliknięciu pokazuje różnicę z nazwami użytkowników na lewym pasku. Co to oznacza?
Dlaczego git blame
faktycznie jest używany, oprócz GitHub?
git praise
zamiast tego :) github.com/ansman/git-praisegit objectively-determine-contributer
po prostu nie ma tego samego pierścienia.git who
Odpowiedzi:
Od git-winy :
Przykład:
Należy pamiętać, że
git blame
nie pokazuje historii modyfikacji według linii w sensie chronologicznym. Pokazuje tylko, kto był ostatnią osobą, która zmieniła wiersz w dokumencie do ostatniego zatwierdzeniaHEAD
.To znaczy, że aby zobaczyć pełną historię / log wiersza dokumentu, musisz uruchomić
git blame path/to/file
dla każdego zatwierdzenia w swoimgit log
.źródło
Polecenie wyjaśnia się całkiem dobrze. Chodzi o ustalenie, który współpracownik napisał konkretną linię lub zniszczył projekt, abyś mógł je winić :)
źródło
git blame
brzmi tak, jakby miał jakiś trwały efekt, podobny do tegogit commit
, gdzie w rzeczywistości informuje Cię tylko o tym, jakie zmiany zostały wprowadzone przez kogo. To i negatywne skojarzenia, jakie niesie ze sobą słowo „wina”, sprawiają, że polecenie brzmi jak coś, z czego należy trzymać się z daleka, i prowadzi do pytań takich jak ta, szukających wyjaśnienia.git praise
.Od GitHub :
Zasadniczo
git-blame
służy do pokazania, która wersja i autor ostatnio zmodyfikowali każdą linię pliku. To jak sprawdzanie historii rozwoju pliku.źródło
git blame
Polecenie służy wiedzieć który / która jest odpowiedzialna za popełnić najnowsze zmiany wprowadzone do pliku. Można także zobaczyć autora / zatwierdzenie każdej linii.git blame filename
(zatwierdza zmiany we wszystkich wierszach kodu)git blame filename -L 0,10
(zatwierdza zmiany z linii „0” na linię „10”)Istnieje wiele innych opcji obwiniania, ale ogólnie mogą one pomóc.
źródło
git blame
Komenda annotates linie z informacjami z przeglądu, który jako ostatni zmodyfikował linię i ... z Git 2.22 (Q2 2019), zrobi to szybciej , ze względu na poprawki wydajności around "git blame
”, zwłaszcza w historii liniowej (co jest norma, którą powinniśmy zoptymalizować).Zobacz commit f892014 (02 kwietnia 2019) autorstwa David Kastrup (
fedelibre
) . (Połączone przez Junio C Hamano -gitster
- w commit 4d8c4da , 25 kwietnia 2019)źródło
git blame
Komenda służy do sprawdzania zawartości pliku linia po linii i zobaczyć, kiedy każdy wiersz był ostatnio modyfikowany i kto był autorem modyfikacji.Jeśli chcesz poznać historię jednego kodu linii, użyj
git log -S"code here"
prostszego niż wina git.git log vs git winy
źródło