当我键入以下内容时,有没有办法获取将提交的文件列表?
git commit -m "my changes"
git status 列出太多。我可以去掉所有的词,但我宁愿不这样做。而且我不想被告知未跟踪的文件。
我试过了
git ls-files -md
但这不会显示最近添加但尚未提交的文件。
我正在寻找与您相同的输出
svn status -q
例如 $ svn status -q
A file.py
M dir/database.py
M start.py
这就是我一直在寻找的。感谢 notnoop 提供了我需要的线索。我想发回我的解决方案,以防它帮助其他人。
git diff HEAD --name-only
因为我打算做
git commit -s -F mesage.txt
与第一行中找到的文件。
我的意图是创建一个完全忽略索引的小系统,即我永远不需要执行 git add。(据我了解,索引在创建补丁时很有用,这绝不是我工作流程中的规范。)
此命令将告诉您索引/缓存/暂存区域中的哪些文件与当前 HEAD 不同(以及它们是添加、修改还是删除),如果您在git commit没有显式路径或-a选项的情况下使用,这些更改将被提交。svn status它的格式与您显示的输出相当相似。
git diff --cached --name-status
我知道 OP 原版要求避免git status,但我觉得留给后代会很好(即其他不分享 OP 保留意见的人)。
git status --porcelain | grep -v '^[ |??]' | sed -e 's/[A-Z] *//'
我的理由是,它git status --porcelain似乎就是为这种困境而建的……
来源: http: //git-scm.com/docs/git-status.html
sed -e 's/[A-Z] *//'编辑:如果您希望将 git 的修改标签保留在每个文件名的前面,您可以选择不使用。
你可以试试:
git diff --name-status
我得到以下信息:
$ git diff --name-status
M README.markdown
没有未跟踪的文件。