nodegit获取所有暂存文件的差异

詹蒂蒙

NodeGit提供了一种简便的方法来获取所有当前更改的差异,而无需分阶段进行更改:

import NodeGit, { Diff } from 'nodegit';

function getUnstagedChanges(path) {
  const repo = await NodeGit.Repository.open(path);
  const diff = await Diff.indexToWorkdir(repo, null, {
    flags: Diff.OPTION.INCLUDE_UNTRACKED |
           Diff.OPTION.RECURSE_UNTRACKED_DIRS
    });
  console.log(await diff.patches());
}

getUnstagedChanges();

是否有类似的解决方案来获取所有阶段性变更的差异?

詹蒂蒙

好的,我找到了一种方法-但是,在进行第一次提交之前,它将不起作用:

import NodeGit, { Diff } from 'nodegit';

function getStagedChanges(path) {
  const repo = await NodeGit.Repository.open(path);
  const head = await repository.getHeadCommit();
  if (!head) {
    return [];
  }
  const diff = await Diff.treeToIndex(repo, await head.getTree(), null);
  const patches = await diff.patches();
  console.log(patches.map((patch) => patch.newFile().path()));
}

getStagedChanges();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Git:防止暂存某些文件,自动暂存所有文件

如何 Git Un 暂存所有暂存文件?

如何暂存所有跟踪的修改文件?

暂存tig中的所有文件

git:显示所有已修改的文件-已暂存和未暂存

如何获取网络上2个文件夹内的所有文件之间的差异?

需要获取两次Git提交之间的所有文件差异(添加,修改,重命名)

使用nodegit获取两个标签之间的差异

如果git上有子文件夹,如何暂存所有文件

有没有办法在提交之前暂存所有已更改的文件?

暂存除一个文件夹外的所有文件夹

在git中使用glob模式暂存除特定文件以外的所有文件

git添加了很多文件,但不是“未暂存的更改未提交”中的所有文件

获取所有.uploadedFiles的所有文件

Git使用单个命令添加所有未暂存/未跟踪的文件

jGit-如何将所有文件添加到暂存区

如何使用vim-fugitive暂存所有已修改和新文件

获取所有文件的ID

如何获取所有文件

如何获取Kotlin IntelliJ暂存文件的输出?

如何使用GitPython获取暂存文件?

使用difftool,同一文件的暂存版本和未暂存版本之间的差异

交互式暂存中没有差异输出

获取R中所有列的行之间的差异

git diff commit不会显示所有更改文件的差异

git使用非空差异添加所有文件

比较2个CSV文件并写入所有差异

如何获取集合中所有文件的所有文件?

如何使用带有nodegit的Revparse获取提交和树?