git - 我如何生成所有可能的 git-status?

标签 git jgit

背景:

我们目前在我正在开发的网络应用程序中使用 git 进行源代码管理。有一个编辑器,因此也有一个 git 的 Web 界面。

我们的一个用例是人们还可以从命令行管理他们的 git 存储库,因此网络界面需要能够以某种方式处理它发现存储库的任何奇怪状态。

问题:

为了进行测试,最好能获得一个包含处于各种可能状态的文件的 git 存储库,这样我就可以验证是否处理了所有可能的情况。读书"man git-status(1)"我计算了一个文件可能处于的 24 种状态(不算被忽略)。

我只知道如何创建其中的 17 个状态。

这是 XY 代码(参见 git-status),我不知道如何重现这些状态。

D           M    deleted from index
C        [ MD]   copied in index
D           D    unmerged, both deleted
A           U    unmerged, added by us
U           A    unmerged, added by them

有一个gist on github使用创建我已经知道如何重现的每个状态的 ruby​​ 脚本,我很乐意使它完整。

最佳答案

通过将这个问题发布到 git 邮件列表,我得到了七个代码中的四个的答案,经过@torek 的调查,现在这个问题有了一个完整的答案,虽然我不太清楚如何在 stackoverflow 中反射(reflect)这一点。

您可以阅读 git mailing list discussion有关详细信息,但简短的回答是,根据@torek 提供的信息,git 命令行工具的普通用户无法访问我无法重现的任何状态组合。

关于git - 我如何生成所有可能的 git-status?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792906/

相关文章:

java - JGit 仅遍历本地和远程分支并读取文件

git - 如何在 Git 中创建带有快照的编码教程

git - 使用git,如何忽略一个分支中的文件但将其提交到另一个分支中?

ruby-on-rails - Cygwin 上的 Heroku 命令挂起

git - 当 develop 分支与 master 有很大不同时管理修补程序?

java - 如何使用 JGit 获取存储库中文件的时间戳?

diff - 如何在不创建 repo 的情况下通过 JGit 区分两个文件?

java - 使用 Java 从本地克隆的 Git 存储库获取修改后的文件

java - 使用 JGit 获取文件、修改内容并提交

linux - git --- 如何在 linux 上安排 `git push`?