Przeglądałem już odpowiednie dokumenty z git-scm.com i gitref.org , ale nie mogę tego rozgryźć .
Powiedzmy, że chcę uzyskać wszystkie zatwierdzenia we wtorek, 12 listopada 2013 r. Korzystając z istniejącego repozytorium jako przykładu, wiem na pewno, że mam zatwierdzenia tego dnia, a także zatwierdza dzień przed i dzień później.
Z 2013-11-11
i2013-11-12
Wszystkie poniższe informacje dają mi zobowiązania zarówno 11 listopada, jak i 12 listopada:
git log --after="2013-11-11" --until="2013-11-12"
git log --since="2013-11-11" --until="2013-11-12"
git log --after="2013-11-11" --before="2013-11-12"
git log --since="2013-11-11" --before="2013-11-12"
z 2013-11-12
tylko
Wszystkie poniższe czynności nie dają mi żadnych zobowiązań:
git log --since="2013-11-12" --until="2013-11-12"
git log --since="2013-11-12" --before="2013-11-12"
git log --after="2013-11-12" --until="2013-11-12"
git log --after="2013-11-12" --before="2013-11-12"
Z 2013-11-12
i2013-11-13
Zgodnie z oczekiwaniami (z wynikami 2013-11-11
i 2013-11-12
wyżej), wszystkie z poniższych dać mi wynika zarówno z 12 listopada i 13:
git log --since="2013-11-12" --before="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
git log --since="2013-11-12" --until="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
...i tak dalej i tak dalej. Czuję się jak Próbowałem wszystkich możliwych kombinacji since
, after
, before
, a until
jednak nadal nie możesz znaleźć odpowiedzi, nie mogę zrozumieć, czy te opcje są włącznie lub wyłączne, ponieważ wydaje się być powszechna, czy dwie daty są różne, ale wyłączne, jeśli są tego samego dnia. Czy coś przeoczyłem / co robię źle ?!
Odpowiedzi:
Dzięki John Bartholomew!
Odpowiedzią jest określenie czasu, np
git log --after="2013-11-12 00:00" --before="2013-11-12 23:59"
źródło
git log --after="2013-11-12 00:00" --before="2013-11-13 00:00"
jest lepsze. Myślę,gitk --since="2013-11-12 00:00" --until="2013-11-13 00:00" &
że działałoby to również, jeśli masz zainstalowany gitk.git log --after="2017-07-25" --before="2017-07-26"
daje mi prawidłowe wyniki.Zwykle sprawdzam dziennik git i widzę, nad czym pracowałem w danym dniu, i na tej podstawie aktualizuję grafik, ale trudno jest wpisać pełną datę w formacie ISO, więc po prostu robię to w ten sposób
i dodaję,
--author
aby wydrukować tylko moje zobowiązaniaDrukuje zatwierdzenia, które wydarzyły się 9 czerwca (tak w tym przypadku w 2016 r., A nie w 2015 lub 2014 r. Itd.).
Te
--since/--after
i--until/--before
parametry mogą również brać takie rzeczy3 days ago
,yesterday
itpźródło
since
iuntil
wartości nie są poprawne, nie uzyskasz żadnych wyników, które są pewne.git log
Najpierw użyj i spróbuj wybrać wartośćsince
iuntil
na podstawie tego, co widzisz. Nie wymaga oddziału ani niczego specjalnego. Nie jestem pewien, od której wersji Git ta funkcja jest dostępna. Upewnij się, że masz również najnowszą wersję.git log --after="may 2" --before="may 3"
Nie ma nic złego w zaakceptowanej odpowiedzi (którą głosowałem), ale ... jesteśmy tu dla nauki!
Poniższe dane wyjściowe można rozszerzyć / dostosować za pomocą
pretty=format:<string>
symboli zastępczych :Nie jest w 100% odporny na błędy, ponieważ użytkownik mógł wprowadzić ten sam ciąg. Ale dopuszczalne w zależności od tego, które symbole zastępcze są używane. Powyższy fragment kodu nie zawiedzie, na przykład.
Można by równie dobrze przeanalizować cały
git log
sięJSON
i zużywają / manipulować swoje dane do czyjegoś treści serca. Sprawdź https://github.com/dreamyguy/gitlogg i nigdy nie oglądaj się za siebie!Uwaga: to jeden z moich projektów.
źródło
Zrobiłem alias git do tego konkretnego celu:
Stosowanie:
źródło
git commitsAtDate yesterday
,2 days ago
itdTen skrypt wyświetla dostępny zakres dat zatwierdzeń dla bieżącego repo, a następnie monituje o datę, od której chcesz zobaczyć zatwierdzenia. Wyświetla krótkie SHA i pełne SHA, autora, znacznik czasu zatwierdzenia i komentarze w pojedynczych cudzysłowach.
Skrypt wyświetla monity o daty, dopóki nie naciśniesz Enter lub Control-D.
Użytkownicy komputerów Mac: wymaga daty GNU.
Zadzwoniłem do skryptu
commitsOnDates
, a tutaj jest w akcji. Pierwsza data, którą wpisuję, nie zawiera żadnych zatwierdzeń, więc odpowiedź jest tylko pustą linią:źródło