Git
Git - 查找具有未暫存更改的暫存文件
我希望檢測暫存文件是否有未暫存的更改,並將其添加到預送出掛鉤。
例如,當輸出是這樣的時候,我應該能夠檢測到 README.md 有未分級的更改。
❯ git status Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: README.md Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: README.md modified: foo.txt
我能找到的最佳解決方案是將暫存和未暫存文件的列表寫入文件,並使用
comm
git diff --name-only > /tmp/unstaged.txt git diff --name-only --staged > /tmp/staged.txt comm /tmp/unstaged.txt /tmp/staged.txt
如果您使用短狀態,暫存內容顯示
M
在第一列,非暫存內容顯示M
在第二列。因此,可以通過以下方式檢測具有分階段和非分階段更改的文件git status -s | awk '/MM / { print $2 }'