Мне удалось записать файл в ветку в пустом хранилище, используя приведенный ниже код, но он работает только для файлов в корне.Мне не удалось найти хороший пример в документации о том, как построить дерево для подпапки и использовать его в качестве коммита.
async function writeFile(filename, buffer) {
const signature = NodeGit.Signature.now('Jamie', 'jamie@diffblue.com');
const repo = await NodeGit.Repository.openBare('java-demo.git');
const commit = await repo.getBranchCommit('master');
const rootTree = await commit.getTree();
const builder = await NodeGit.Treebuilder.create(repo, rootTree);
const oid = await NodeGit.Blob.createFromBuffer(repo, buffer, buffer.length);
await builder.insert(filename, oid, NodeGit.TreeEntry.FILEMODE.BLOB);
const finalOid = await builder.write();
await repo.createCommit('refs/heads/master', signature, signature, 'Commit message', finalOid, [commit]);
}
const buffer = new Buffer('Hello\n', 'utf-8');
writeFile('test.txt', buffer).then(() => console.log('Done'));
Какие изменения необходимо будет опубликовать (например,) src / test.txt, а не test.txt?