查找不同作者的最后提交

查找不同作者的最后提交

我如何检测两个不同的 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

例如,3 月 29 日是用户 A 提交到 repo(管理员)的最后一天,而 6 月 8 日是用户 B 在本地提交的最后一天(不是管理员,因此无法推送到 master)。我想知道用户 B 向 repo 添加(或修改)的所有行是什么。以下是用户 B 的最后一个 git 状态:

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

查找不同作者的最后提交

鉴于您的本地master分支领先origin/master并因此包含所有相关提交,您可以使用它git log来搜索搜索用户的最后一次提交:

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

然后将它们与提交进行比较

git diff COMMIT1 COMMIT2

然而,如果中间有提交,它可能也包含其他更改。

将找到的提交的更改视为差异:

git show COMMIT1
git show COMMIT2

解释

  • https://git-scm.com/docs/git-log
  • git log显示最新
  • 搜索作者:(--author=如果不同,您也可以搜索提交者)
  • 限制为 1 次提交(即最后一次):-1

陷阱

如果提交位于不同的分支,则git log可以使用

  • 带有分支名称
  • 以及--branches=分支名称的搜索模式
  • 对于--all所有分支

相关内容