git显示由我或文件夹中的任何人作为合并更改的最后10次提交所做的更改

时间:2014-08-16 12:23:24

标签: git

参考我的original question

这是该问题的延续 我有一个git存储库,其中有一个文件夹。在此文件夹中,多人进行更改。我最近在该目录中做了很少的提交。

在一次提交中,我添加了几行代码,在下一次提交中,我删除了这些行 让我们将这些行称为X.

我想:

  1. 查看我在该目录中的最后10次提交中所做的所有更改(即仅由我完成的更改)作为合并更改,其中我将文件中的所有更改视为单个空格。
    即对我来说,我不应该看到这些行X,并且应该只看到每个文件的单次时间 以及

  2. 查看任何人在过去10次提交中在该目录中所做的所有更改作为合并更改,其中我将文件中的所有更改视为单个空格。
    即对我来说,我不应该看到那些X行,并且应该只看到每个文件单次

2 个答案:

答案 0 :(得分:1)

git diffpreviously 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中是一个“波浪”的不是冲刺!

http://git-scm.com/book/en/Git-Tools-Rewriting-History

的更多信息