Неисправность узла Git: не удаляйте sh какие-либо файлы в Ubuntu - PullRequest
0 голосов
/ 10 июля 2020

Я уже использую узел git на моем локальном компьютере (Windows 10), и все работает нормально. Теперь мне нужно использовать контейнер docker на основе linux (по запросу клиента). Сначала я выбрал alpine3, но мой контейнер вылетал каждый раз, когда я пытался клонировать репо. Затем я перешел на ubuntu 18.04, и у меня нет проблем с clone, fetch, pull ext., Но мои коммиты не отправляют файлы. У меня есть фиксация с правильным автором, описанием в правой функции, но каждый раз она пуста (файлы фактически изменяются). То же самое на моем p c - у меня нет этой проблемы. Это мой код:

gitDirCampaigns = (path.join(repo.workdir(), process.env.GITDIR, '/')).replace(/\\/gi, '/');
await fse.ensureDir(gitDirCampaigns);

for (const campaign of campaigns) {
     const filePath: string = path.join(gitDirCampaigns, campaign.key + '.json').replace(/\\/gi, '/');
     filePaths.push(gitDirCampaigns + campaign.key + '.json');
     fse.writeFileSync((filePath), JSON.stringify(new ListDto([campaign]), null, '\t'));
}
            
const index = await repo.refreshIndex(); // read latest index situation
await index.addAll(filePaths); // add all new files
await index.write(); // flush changes to index
const changes = await index.writeTree(); // get reference to a set of changes
const head = await nodegit.Reference.nameToId(repo, "HEAD"); // get reference to the current state
const parent = await repo.getCommit(head); // get the commit for current state
const author = nodegit.Signature.now(process.env.GITNAME, process.env.GITMAIL); // build auth/committer
const committer = nodegit.Signature.now(process.env.GITNAME, process.env.GITMAIL); // combine all info into commit and return hash
const commitId = await repo.createCommit("HEAD", author, committer, 'Exported ' + filePaths.length + ' files' + ' | ' + this.timeStamp, changes, [parent]);
const origin = await repo.getRemote('origin');
const result = await origin.push(
      ["refs/heads/" + remoteBranchName + ":refs/heads/"+ remoteBranchName],
      { callbacks: { credentials: credentials } }
);

У кого-нибудь еще есть такая проблема? Надеюсь, я был достаточно ясен. Мой env:

  • ubuntu 18.04
  • node js 10.21
  • node git 0.25
...