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();
关于javascript - nodegit 获取所有暂存文件的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36245496/