【问题标题】:How do I use rugged to check if there are uncommited changes in my git repository?如何使用坚固性检查我的 git 存储库中是否有未提交的更改?
【发布时间】:2013-04-16 13:19:08
【问题描述】:

如何使用rugged 来检查我的 git repo 中是否有未提交的更改?

很像How do I programmatically determine if there are uncommited changes?

【问题讨论】:

    标签: ruby libgit2 rugged


    【解决方案1】:

    哇。这个问题已经有一段时间了,但我想我会投入 2 美分,因为我目前正在使用学习/使用 Rugged

    现在有一个方便的方法Repository#diff_workdir

    假设您想将工作目录与最后一次提交进行比较(相当于我认为只是一个普通的旧 git diff)。您可以通过以下方式获得:

    repo.diff_workdir(repo.last_commit)
    

    希望这对某人有所帮助!

    【讨论】:

      【解决方案2】:

      你也这样做。询问状态或差异 HEAD 和工作树之间是否有变化。

      Rugged 尚未合并差异支持,因此您必须使用 status。

      【讨论】:

        【解决方案3】:

        最近添加了差异支持。您可以从 github 拉取最新版本。

        a = Rugged::Tree.lookup(repo, "806999").tree
        b = Rugged::Tree.lookup(repo, "a8595c").tree
        
        diff = a.diff(b)
        
        deltas = diff.deltas
        patches = diff.patches
        

        【讨论】:

          【解决方案4】:

          您可以使用Repository#status 获得类似于git status 的内容。

          如果您只想检查是否有任何未暂存的更改:

          repository.to_enum(:status).any?
          

          【讨论】:

            猜你喜欢
            • 2015-12-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-12-02
            相关资源
            最近更新 更多