由于官僚主义的原因,我需要为报告获得存储库中所有更改的文件的列表(我从现有源代码开始)。
我该怎么跑才能拿到这个列表?
由于官僚主义的原因,我需要为报告获得存储库中所有更改的文件的列表(我从现有源代码开始)。
我该怎么跑才能拿到这个列表?
当前回答
查找自上次提交以来修改过的所有文件的名称:
git diff --name-only
或者(获取更多信息,包括未跟踪的文件):
git status
其他回答
列出所有未执行跟踪的更改文件: Git diff -name-only 使用实例列出所有被跟踪的已更改文件。 Git diff -name-only - staging 列出所有已跟踪和未跟踪的已更改文件: {git diff——name-only;Git diff -name-only - staging;} | sort | uniq 列出所有未跟踪的文件(由git状态列出的文件,因此不包括任何被忽略的文件): Git ls-files——other——exclude-standard
如果你在shell脚本中使用它,并且你想通过编程方式检查这些命令是否返回了任何东西,你会对git diff的——exit-code选项感兴趣。
如果你想检查修改过的文件,你需要注意很多小事,比如哪个最好用, 比如,如果你想检查哪个文件改变了,只需输入
Git状态——它将显示文件的变化
然后,如果你想知道要做什么改变,可以通过多种方式进行检查,
Git diff——将显示所有文件中的所有更改
只有当只修改了一个文件时才有效
如果你想检查特定的文件,那么使用
git diff
一些过滤器是为我工作在GitHub动作取决于类型(pull_request或合并为主):
git --no-pager diff --name-only --diff-filter=ACMRT ${{github.event.pull_request.base.sha}} ${{ github.event.pull_request.head.sha }}
git --no-pager diff --name-only --diff-filter=ACMRT ${{github.event.pull_request.base.sha}} ${{github.sha}}
git log -m -1 --name-only --pretty="format:" ${{ github.sha }}
试试这些,看看哪一个适合你的需要。
获取修改文件列表并将其保存到某个文本文件的最简单方法是:
git diff --name-only HEAD^ > modified_files.txt
查找自上次提交以来修改过的所有文件的名称:
git diff --name-only
或者(获取更多信息,包括未跟踪的文件):
git status