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