Как да получа diff
за определен потребител между две дати от git? Или как да използвам командата git whatchanged
за изброяване на ангажименти за определен потребител?
Има ли някакъв начин без скриптове (вградена команда git)?
Как да получа diff
за определен потребител между две дати от git? Или как да използвам командата git whatchanged
за изброяване на ангажименти за определен потребител?
Има ли някакъв начин без скриптове (вградена команда git)?
Вярвам, че няма такъв начин да получите разлика само като знаете дати.
От днес можете да направите следното:
git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H"
И след това git diff
между първата и последната ревизия. Ако списъкът с ревизии е твърде дълъг, използвайте горния git log ...
с | head -1
и | tail -1
, за да получите първата и последната ревизия.
Обърнете внимание, че горният git log ще върне ревизии точно между дадените дати, т.е. ревизии за OCT 5, OCT 6, ..., OCT 10.
@{date}
, например git diff @{date1} @{date2}
. Проблемът с това е, че конструкцията @{date}
не разглежда хронологията на ангажиментите, за да преведе датата в идентификатор на комит, а вместо това използва revlog. Резултатът е, че ако дърпате наистина често, вашият ревлог ще има достатъчно фина информация, че горното може да направи това, което искате, но ако не, резултатите ще са неточни...
- person snogglethorpe; 28.10.2011
git log --since="FEB 1 2014" --until="FEB 30 2014"
- person bonyiii; 16.05.2014
Това е възможно и с критериите за потребител/изпълнител:
git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary"
Това ще съответства на всичко
John
или Mary
MBT
или MBF
плюс числов код, който може да включва -
символ.