MATLAB-Funktion zum Finden des Projekt-Stammverzeichnisses anhand des .git-Ordners vom aktuellen Skriptpfad
Diese Funktion lokalisiert das Stammverzeichnis eines Git-Repositories durch Suche nach dem .git-Ordner, beginnend beim Verzeichnis des aufrufenden Skripts. Sie durchläuft den Verzeichnisbaum nach oben, bis sie ein Verzeichnis findet, das einen .git-Ordner enthält, oder die Wurzel des Dateisystems erreicht.
find_git_root.m
find_git_root.m
function rootDir = find_git_root(scriptFullPath)
% FIND_GIT_ROOT Navigiert im Verzeichnisbaum nach oben, um das erste Verzeichnis zu finden, das einen .git-Ordner enthält.
% rootDir = FIND_GIT_ROOT(scriptFullPath) startet beim Verzeichnis des angegebenen scriptFullPath
% und durchläuft den Verzeichnisbaum nach oben, bis ein .git-Ordner gefunden wird.
% Falls kein .git-Ordner gefunden wird, wird ein Fehler ausgegeben.
% Verzeichnis des angegebenen Skript-Vollpfads abrufen
scriptDirectory = fileparts(scriptFullPath);
% Aktuelles Verzeichnis mit dem Skript-Verzeichnis initialisieren
currentDir = scriptDirectory;
while true
% Prüfen, ob das aktuelle Verzeichnis einen .git-Ordner enthält
if exist(fullfile(currentDir, '.git'), 'dir')
fprintf('Directory containing ".git" found: %s\n', currentDir);
rootDir = currentDir;
return;
end
% Übergeordnetes Verzeichnis abrufen
parentDir = fileparts(currentDir);
% Prüfen, ob die Wurzel erreicht wurde, ohne einen .git-Ordner zu finden
if strcmp(currentDir, parentDir)
error('No directory containing ".git" was found in the path hierarchy.');
end
% Zum übergeordneten Verzeichnis wechseln
currentDir = parentDir;
end
endVerwendungsbeispiel
Um diese Funktion zu verwenden, rufe sie einfach von einem beliebigen Skript innerhalb deines Git-Repositories auf. Sie gibt den Pfad zum Stammverzeichnis des Repositories zurück.
find_git_root_usage.m
rootDir = find_git_root(mfilename('fullpath'));Ähnliche Beiträge nach Kategorie:
MATLAB/Simulink
Wenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen