Как я могу получить разность между всеми фиксациями, которые произошли между двумя встречами с Мерзавцем?

Это ищет элемент с идентификатором list, который имеет свойство value, равное 2. То, что Вы хотите, option ребенок list.

$("#list option[value='2']").text()
110
задан Cœur 19 February 2017 в 12:49
поделиться

6 ответов

Вы можете использовать git whatchanged --since = "1 день назад" -p

Также требуется аргумент - до .

Документы

155
ответ дан 24 November 2019 в 03:12
поделиться

«дата» - это немного нечеткое понятие в git. У коммита будет дата автора, которая может быть давно в прошлом, прежде чем кто-то фактически потянет / зафиксирует фиксацию в своем репозитории, также фиксация может быть перебазирована и обновлена, чтобы быть поверх явно более новой фиксации.

A commit также имеет дату фиксации, которая обновляется, если фиксация изменена или изменена каким-либо образом. Эти коммиты с большей вероятностью будут иметь какой-то хронологический порядок, но вы все еще зависите от того, что коммиттер имеет правильное время, установленное на его компьютере, и даже в этом случае, немодифицированный коммит может находиться в функциональной ветке в удаленном репозитории неопределенное время, прежде чем будет объединен с основной веткой центрального репозитория.

Что, вероятно, наиболее полезно для ваших целей, так это дата рефлога в конкретном рассматриваемом репозитории. Если у вас включены рефлоги для каждой ветки (см. git config core.logAllRefUpdates ), вы можете использовать ref @ {date} синтаксис для указания того, где ветвь находилась в определенное время.

Например,

git log -p master@{2009-07-01}..master@{now}

Вы также можете использовать «нечеткие» описания, например:

git log -p "master@{1 month ago}..master@{yesterday}"

Эти команды покажут все коммиты, у которых есть ' появились 'в данной ветке репозитория, независимо от того, сколько им лет на самом деле в соответствии с их автором и датами фиксации.

Обратите внимание, что журнал ссылок для каждой ветки специфичен для репозитория, поэтому, если вы запускаете журнал на клоне, и вы не вытягиваете (скажем) месяц, затем сразу вытягиваете все изменения за последний месяц, тогда все изменения за последний месяц появятся в @ {1 час назад} . . @ {now} диапазон. Если вы можете запустить команду log в «центральном» репосте, куда люди отправляют сообщения, то он может делать то, что вы хотите.

22
ответ дан 24 November 2019 в 03:12
поделиться

Возможно,

$ git format-patch --committer=<who> --since=yesterday --stdout

- это то, что вам нужно (с параметром --stdout или без него)?

4
ответ дан 24 November 2019 в 03:12
поделиться

Это более забавный ответ, потому что, вероятно, есть способ получше. Это покажет все хэши коммитов на сегодня.

git log --pretty="format:%H %ai" | grep `date +"%Y-%m-%d"` | awk {'print $1'}`

; ·)

2
ответ дан 24 November 2019 в 03:12
поделиться

Вы также можете использовать git-format-patch для подготовки исправлений (различий) и отправки их по электронной почте.

Используйте параметры [с] или [диапазон версий] для указания диапазона коммитов.

2
ответ дан 24 November 2019 в 03:12
поделиться

Предыдущие предложения имеют некоторые недостатки. По сути, я искал что-то эквивалентное cvs diff -D "1 день назад" -D "29.02.2010 11:11" . Собирая все больше и больше информации, я нашел решение.

То, что я пробовал:

  • git whatchanged --since = "1 день назад" -p из здесь

    Но это дает различие для каждого коммита, даже если есть несколько коммитов в одном файле. Я знаю, что «дата» - это немного расплывчатое понятие в git , я подумал, что должен быть какой-то способ сделать это.

  • git diff 'master @ {1 день назад} .. master выдает некоторое предупреждение warning: Журнал для' master 'возвращается только во вторник, 16 марта 2010 г. 14:17:32 +0100. и не показывает все различия.

  • git format-patch --since = вчера --stdout мне ничего не дает.

  • revs = $ (git log --pretty = "format:% H" --since = "1 день назад"); git diff $ (echo "$ revs" | tail -n1) $ (echo "$ revs "| head -n1) работает как-то, но кажется сложным и не ограничивается текущей веткой.

Наконец:

Как ни странно, git-cvsserver не поддерживает "cvs diff -D" (без этого он где-то задокументирован).

59
ответ дан 24 November 2019 в 03:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: