git svn status - 显示未提交给svn的更改

Jos*_*own 20 git-svn

我在git-svn中寻找一个命令,它将向我显示我已经提交给我的git存储库的更改,但尚未提交到中央svn存储库.我正在寻找像svn状态一样的东西,但我正在使用git-svn,不幸的git svn status是,它不是一个有效的命令.

我试过git status但它没有解决这个问题,因为它显示了尚未提交给我的本地git repo的更改.

我也尝试过git svn dcommit --dry-run,但它没有告诉我哪些文件已准备好被提交 - 它只显示存储库URL.

Jos*_*own 22

假设远程Subversion存储库的分支位于remotes/git-svn,请运行以下命令:

git svn fetch
Run Code Online (Sandbox Code Playgroud)

获取将确保remotes/git-svn是最新的.(感谢Mark在评论中指出这一点.)

git diff --name-status remotes/git-svn
Run Code Online (Sandbox Code Playgroud)

这应该显示已经提交给git而不是Subversion的所有文件的名称和状态,就像svn status命令一样.

如果您不确定包含Subversion远程存储库的分支位于何处,您可以运行:

git branch -a
Run Code Online (Sandbox Code Playgroud)

应该产生类似于以下的输出:

* master
  remotes/git-svn
Run Code Online (Sandbox Code Playgroud)

您可以从中猜到远程Subversion存储库位于remotes/git-svn中.

  • 可能值得在答案的开头添加一个注释,以便首先运行`git svn fetch`以确保`remotes/git-svn`是最新的. (3认同)