相当于"svn -v status"的git

Vic*_*cky 7 svn git git-svn

我想知道版本控制已知的文件列表.

我知道在SVN中,您可以执行以下操作:

svn -v status
Run Code Online (Sandbox Code Playgroud)

然后你得到一份清单

"[rev#1] [rev#2] [creator] [文件名]"

rev#1是具有此文件的最后一个修订版,rev#2是具有此文件的第一个修订版.

此列表包含svn跟踪的所有文件,而不仅包含具有本地更改的文件.

我想知道如何使用GIT做到这一点

Von*_*onC 4

你确实有一个相当于 svn status 和 git 的建议:

git config alias.svn-status \!"\
{ \
git ls-files -o --directory -t ; \
git status | grep --color=never 'deleted:    ' | sed 's|^.*deleted:    ||' | sed 's|^|D |' ; \
git ls-files -m -s | awk '{print \$NF}' | sort -u | sed 's|^|M |' ; \
} \
| sort -k 2 \
| sed 's|^\\(.\\) *|\\1      |'"
Run Code Online (Sandbox Code Playgroud)

我怀疑Techism(在评论中)在这个SO 问题git log --name-status中提到的可能会使别名更短。

它的变体实际上基于diff --name-status

svn-status = "! git ls-files --exclude-per-directory=.gitignore --exclude-from=.git/info/exclude --exclude-from=$HOME/.gitignore --others -t | sed 's| |\t|'; git diff HEAD --name-status "
Run Code Online (Sandbox Code Playgroud)