我总是尝试用测试覆盖我的所有代码。但有时候,即使并非所有代码都被覆盖,我也会进行太多更改。这些时候我需要检查最后更改的文件或特定的提交以查看是否覆盖。了解列出(通过控制台)上次提交中更改的所有文件的方法会很有用。上次提交或特定提交。现在我使用SourceTree,但我不喜欢从控制台传递到sourcetree,再次传递到sourcetree到控制台。
有人可以帮助我吗?
答案 0 :(得分:3)
如果您只想要更改的文件名,请尝试...
git show --pretty="format:" --name-only
它将显示您在当前分支的最后一次提交中更改的所有文件。
如果您不想输入less
,请使用...
git diff-tree --no-commit-id --name-only -r HEAD
答案 1 :(得分:1)
git diff --name-only
或git diff --name-status
是执行此操作的两种标准方法:您可以为它们提供任何单个提交,将当前工作树与该提交进行比较,或者将任何一对提交进行比较以进行比较
您还可以向git show
添加diff选项,以便git show --name-only
打印日志消息,然后打印文件列表; git show --name-status
也会添加状态字母。这对于合并提交的效果略有不同,因为git show
默认使用“组合差异”(请参阅git diff documentation,大约一半,关于组合差异;请注意-m
,{{ 1}}将产生多个单独的差异)。 (和alex noted一样,您可以使用git show
更改或删除标题信息。)
我喜欢其中一个非常古老的命令--pretty=format:<directives>
,我自己(它是git whatchanged
的变体; git log
做同样的事情)。我看到git log --raw
可能会消失的提示,但至少git whatchanged
应该留下来。 git log --raw
中使用相同的输出格式;再次,请参阅git diff documentation。