Как я могу обнаружить изменения (скажем, построчно, если они вообще различны) между двумя разными пользователями git (и их последним коммитом)?

mona@DESKTOP-0JQ770H:/mnt/c/june1st_branch$ git log --pretty=format:"%H"  --after "2017-03-30 00:00"
17e24f8f66eda0b831ed2296482c7a4d42a8a0ba
6af4704ae5e2aacbdc52b4ad3057458158656c11
c6d33cc7fe7d4a86540589efdaa42b56ccd73a73
mona@DESKTOP-0JQ770H:/mnt/c/june1st_branch$ git log --pretty=format:"%H"  --after "2017-03-29 00:00"
17e24f8f66eda0b831ed2296482c7a4d42a8a0ba
6af4704ae5e2aacbdc52b4ad3057458158656c11
c6d33cc7fe7d4a86540589efdaa42b56ccd73a73
7b86066431bc4139ef2bcbcc9ee31e248108592a
05d321cae73f46499e656f84b644dd2c9c244a5e
mona@DESKTOP-0JQ770H:/mnt/c/june1st_branch$ git log --pretty=format:"%H"  --after "2017-05-01 00:00"
17e24f8f66eda0b831ed2296482c7a4d42a8a0ba
6af4704ae5e2aacbdc52b4ad3057458158656c11
c6d33cc7fe7d4a86540589efdaa42b56ccd73a73

Например, 29 марта был последним днем, когда пользователь A совершил репо (admin), а 8 июня - последним днем, когда пользователь B принял коммит локально (не администратор, поэтому не может нажать на master). Я хотел бы знать, что все строки добавлены пользователем B в репо (или изменены). Вот последний статус git пользователя B:

mona@DESKTOP-0JQ770H:/mnt/c/june1st_branch$ git status
On branch master
Your branch is ahead of 'origin/master' by 3 commits.
  (use "git push" to publish your local commits)

nothing to commit, working directory clean

1 ответ1

1

Нахождение последних коммитов разных авторов

Учитывая, что ваша локальная ветка master опережает origin/master и, таким образом, содержит все соответствующие коммиты, вы можете использовать git log для поиска последнего коммита пользователя earch:

git log --pretty=format:"%H" -1 --author=EMAIL

а затем сравнить их с коммитами с

git diff COMMIT1 COMMIT2

однако, он может содержать и другие изменения, если между ними есть коммиты.

чтобы просмотреть изменения найденных коммитов как diffs:

git show COMMIT1
git show COMMIT2

объяснение

  • https://git-scm.com/docs/git-log
  • git log показывает сначала новые
  • поиск автора: --author= (вы также можете найти коммиттера , если он отличается)
  • ограничение до 1 коммита (т.е. последнего): -1

Ловушки

Если коммиты находятся в разных ветках, можно использовать git log

  • с названиями филиалов
  • с --branches= и шаблоном поиска для названий ветвей
  • с --all , для всех веток

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .