我正在使用
git status --porcelain -uall
它给出这样的结果:
?? FOLDER1/FOLDERCHILD/ETC/FILE1.cs
从此,我想删除
??
并保留其余部分,但如果我进行一些提交,那么我的 Git 更改将为 0 并且此查询将不起作用。
如何检索已在我的分支中提交的所有文件名/路径?
我试过了
git diff --name-only main...
这看起来是一个不错的选择,但它仅返回已提交的文件名(与上述问题相反)。
我不想使用 GitHub API,只想使用 Git 命令。
我想知道是否有任何命令可以给我所有的 Git 更改:
我想要与打开拉取请求时得到的结果类似的结果。
一个简单的方法是简单地使用
sed
删除前导部分。
以下命令为您提供文件列表(没有任何进一步的详细信息):
git status --porcelain=v1 | sed -E 's/^.{2} //'
结果:
sources/data/f1.c
sources/data/f2.c
sources/data/f3.c
更多详细信息:这里,
sed
命令用于替换特定模式(在本例中为正则表达式^.{2}
,它匹配“行开头的前两个字符带有空格”)。