extensions/git/src/repository.ts/Repository/commit
class Repository:	async commit(message: string | undefined, opts: CommitOptions = Object.create(null)): Promise<void> {
		const indexResources = [...this.indexGroup.resourceStates.map(r => r.resourceUri.fsPath)];
		const workingGroupResources = opts.all && opts.all !== 'tracked' ?
			[...this.workingTreeGroup.resourceStates.map(r => r.resourceUri.fsPath)] : [];

		if (this.rebaseCommit) {
			await this.run(Operation.RebaseContinue, async () => {
				if (opts.all) {
					const addOpts = opts.all === 'tracked' ? { update: true } : {};
					await this.repository.add([], addOpts);
				}

				await this.repository.rebaseContinue();
				this.closeDiffEditors(indexResources, workingGroupResources);
			});
		} else {
			await this.run(Operation.Commit, async () => {
				if (opts.all) {
					const addOpts = opts.all === 'tracked' ? { update: true } : {};
					await this.repository.add([], addOpts);
				}

				delete opts.all;

				if (opts.requireUserConfig === undefined || opts.requireUserConfig === null) {
					const config = workspace.getConfiguration('git', Uri.file(this.root));
					opts.requireUserConfig = config.get<boolean>('requireGitUserConfig');
				}

				await this.repository.commit(message, opts);
				this.closeDiffEditors(indexResources, workingGroupResources);
			});
		}
	}