这是该问题的延续 我有一个git存储库,其中有一个文件夹。在此文件夹中,多人进行更改。我最近在该目录中做了很少的提交。
在一次提交中,我添加了几行代码,在下一次提交中,我删除了这些行 让我们将这些行称为X.
我想:
查看我在该目录中的最后10次提交中所做的所有更改(即仅由我完成的更改)作为合并更改,其中我将文件中的所有更改视为单个空格。
即对我来说,我不应该看到这些行X
,并且应该只看到每个文件的单次时间
以及
查看任何人在过去10次提交中在该目录中所做的所有更改作为合并更改,其中我将文件中的所有更改视为单个空格。
即对我来说,我不应该看到那些X行,并且应该只看到每个文件单次
答案 0 :(得分:1)
git diff
比previously suggested git log
更适合:
git diff @~10 @ -- path/to/folder
or
git diff HEAD~10 HEAD -- path/to/folder
(@
being a shortcut for HEAD
,git 1.8.4 +)
注意:正如try-catch-finally正确points out,这对作者无效:作者身份可以在提交级别进行过滤,而不是在补丁级别进行过滤。
这就是my answer to the previous question使用git log --author=xxx -p
。
但是为了在一个合并的结果中获得补丁,git diff仍然是正确的工具。
答案 1 :(得分:0)
如果您有一个添加文件的提交和另一个删除它们的提交,您可能需要考虑交互式重新定位以将这两个提交压缩在一起,这将有效地消除“不一致状态提交”。你可能想要消除它。
使用以下内容打开交互式rebasng编辑器
$ git rebase -i HEAD~10
请注意" ~
"在HEAD~10
中是一个“波浪”的不是冲刺!