Git local changes / diff / JGIT

时间:2016-03-22 08:39:05

标签: java git git-diff jgit git-status

我遇到了以下问题:

这就是我想要的:

  • 一个git命令,我可以用它来显示' US'变化
  • 它应该像状态一样工作(显示我所做的)与远程
  • 的比较

这就是我的尝试:

  1. git diff [在JGit中 - > diffentry]有很多选项e.G. master..branchName
  2. 我试图找到一个git status cmd,它可以使用2次提交。
  3. 我看了整个diffEntry [JGIT]方法来找到一个方法来获得我想要的输出
  4. 我用Google搜索了JGit方法,它会显示我想要的输出

    至1. - > 问题是:当我在远程更改文件时,git diff命令将文件显示为' M'对于修改,但用户没有修改它,它可能是真的,但不是我搜索

    至2. - >状态是我想要使用的东西,因为它显示了我想要的东西....但只是从索引到头...

  5. 为了什么?

    我想要一个用户修改/添加/删除的所有文件的列表,这样我就可以遍历它并在每个文件中放置头部信息,就在他推送文件之前。

    工作流程是什么?

    我克隆一个分支,做N-commit,现在我想推。 必须修改此N提交中的每个文件。 (并且这个修改过的问题,如果它在远程分支中被修改,但不在本地修改,我不应该用我的脚本触摸它,但我无法区分这两个)

    €dit:额外信息

    git diff-index几乎完全符合我的要求。 问题是:我只需要过滤我们的'变化。因此,如果在远程修改文件,我不想看到它。我想看看我修改过的文件。

1 个答案:

答案 0 :(得分:0)

如果您只想查看您方面的更改,则应在diff之前更新索引,因此运行git fetch <remote> <branch>并且您的索引树将是最新的,之后您可以运行git diff-index <branch>

如果您只想选择已添加(A),已删除(D),已修改(M)

的文件,则可以添加--diff-filter=ADM