我发现这个很有用git diff HEAD --compact-summary 来自文档:https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---compact-summary Output a condensed summary of extended header information such as file creations or deletions ("new" or "gone", optionally "+l" if it’s a symlink) and mode changes ("+x" or "-x" for adding or removing executable bit respectively) in diffstat. The information is put between the filename part and the graph part. Implies --stat. 这看起来非常接近问题中提到的svn例子.
5条答案
按热度按时间2o7dmzc51#
这就是我一直在寻找的。感谢notnoop提供了我所需要的线索。我想把我的解决方案发回去,以防它对别人有帮助。
因为我打算
与第一行中找到的文件匹配。
我的目的是创建一个完全忽略索引的小系统,也就是说,我永远不需要git add(据我所知,索引在创建补丁时很有用,但这绝不是我工作流程中的标准)。
vsaztqbk2#
这个命令会告诉你index/cache/staging区域中的哪些文件与当前HEAD不同(以及它们是添加、修改还是删除),如果你使用
git commit
而没有显式路径或-a
选项,HEAD是将要提交的更改。它的格式与你显示的svn status
输出相当相似。lxkprmvk3#
您可以尝试:
我得到了以下结果:
没有未追踪的文件。
cqoc49vn4#
我知道OP最初要求避免
git status
,但我觉得这将是很好的留给后代(即其他人谁不分享OP的保留意见)。我的推理是,
git status --porcelain
似乎正是为这种类型的困境而构建的。来源:http://git-scm.com/docs/git-status.html
EDIT:如果你想在每个文件名前面保留git的修改标签,你可以选择不使用
sed -e 's/[A-Z] *//'
。ztyzrc3y5#
我发现这个很有用
git diff HEAD --compact-summary
来自文档:https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---compact-summary
Output a condensed summary of extended header information such as file creations or deletions ("new" or "gone", optionally "+l" if it’s a symlink) and mode changes ("+x" or "-x" for adding or removing executable bit respectively) in diffstat. The information is put between the filename part and the graph part. Implies --stat.
这看起来非常接近问题中提到的svn例子.