auto-git:
[change] main.js
This commit is contained in:
62
main.js
62
main.js
@@ -479,36 +479,42 @@ app.whenReady().then(() => {
|
||||
currentBranch = (await git.revparse(['--abbrev-ref', 'HEAD'])).trim();
|
||||
} catch {
|
||||
currentBranch = null;
|
||||
} //mach kein fass auf
|
||||
|
||||
if (!currentBranch || currentBranch === 'HEAD') {
|
||||
// HEAD ist detached
|
||||
const headCommit = (await git.revparse(['HEAD'])).trim();
|
||||
let masterCommit = null;
|
||||
try {
|
||||
masterCommit = (await git.revparse(['refs/heads/master'])).trim();
|
||||
} catch (e) {
|
||||
masterCommit = null; // master existiert nicht
|
||||
}
|
||||
|
||||
if (masterCommit && headCommit === masterCommit) {
|
||||
// HEAD ist detached, zeigt aber auf den Master-Tip!
|
||||
await git.checkout('master');
|
||||
debug('[autoCommit] HEAD war detached, aber auf master-Tip – zurück zu master.');
|
||||
} else {
|
||||
// Dein altes Branching, nur wenn wirklich nötig:
|
||||
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
||||
const backupBranch = `backup-master-${timestamp}`;
|
||||
const branches = await git.branchLocal();
|
||||
if (branches.all.includes('master')) {
|
||||
await git.branch(['-m', 'master', backupBranch]);
|
||||
debug(`[autoCommit] Alter master in ${backupBranch} umbenannt.`);
|
||||
}
|
||||
await git.checkout(['-b', 'master']);
|
||||
debug('[autoCommit] Neuer master-Branch erstellt und ausgecheckt.');
|
||||
}
|
||||
}
|
||||
|
||||
if (!currentBranch || currentBranch === 'HEAD') {
|
||||
// HEAD ist detached
|
||||
const headCommit = (await git.revparse(['HEAD'])).trim();
|
||||
let masterCommit = null;
|
||||
let hasMaster = false;
|
||||
try {
|
||||
masterCommit = (await git.revparse(['refs/heads/master'])).trim();
|
||||
hasMaster = true;
|
||||
} catch (e) {
|
||||
masterCommit = null; // master existiert nicht
|
||||
hasMaster = false;
|
||||
}
|
||||
|
||||
if (hasMaster && headCommit === masterCommit) {
|
||||
// HEAD ist detached, zeigt aber auf den master-Tip!
|
||||
// -> einfach zurück zu master (kein Umbenennen, kein Neuanlegen!)
|
||||
await git.checkout('master');
|
||||
debug('[autoCommit] HEAD war detached, aber auf master-Tip – zurück zu master.');
|
||||
} else if (hasMaster && headCommit !== masterCommit) {
|
||||
// HEAD ist detached, aber zeigt NICHT auf master-Tip:
|
||||
// -> master-Branch wird zu backup gemacht und ein neuer master-Branch auf HEAD erstellt
|
||||
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
||||
const backupBranch = `backup-master-${timestamp}`;
|
||||
await git.branch(['-m', 'master', backupBranch]);
|
||||
debug(`[autoCommit] Alter master in ${backupBranch} umbenannt.`);
|
||||
await git.checkout(['-b', 'master']);
|
||||
debug('[autoCommit] Neuer master-Branch erstellt und ausgecheckt.');
|
||||
} else if (!hasMaster) {
|
||||
// Es gibt keinen master-Branch (z.B. initiales Repo)
|
||||
await git.checkout(['-b', 'master']);
|
||||
debug('[autoCommit] Kein master-Branch vorhanden, neuer master erstellt.');
|
||||
}
|
||||
}
|
||||
|
||||
await git.add(['-A']);
|
||||
debug('Alle Änderungen gestaged.');
|
||||
await git.commit(message || 'test');
|
||||
|
||||
Reference in New Issue
Block a user