Python-Git-Modul Ungültiger Git-Repository-Fehler

Lesezeit: 2 Minuten

Ich habe ein Skript, das in einer Ordnerstruktur als solche platziert ist:

~/wofc/folder1/folder2/script.py

script.py verwendet das Git-Modul, um einige Aufgaben zu erledigen. Wenn ich das Skript jedoch von außerhalb ausführe folder2 dh wenn ich habe cd hinein folder1 ich renne python folder2/script.py arg1 arg2 Ich bekomme die raise InvalidGitRepositoryError(epath) Error. Das Skript läuft gut, wenn ich es von innen ausführe folder2 dh cd hinein folder2 und Renn python script.py arg1 arg2. Unten ist das relevante Code-Snippet. Können Sie mir bitte sagen, was das Problem ist?

    git = Repo('{}/..'.format(os.getcwd())).git
    git.checkout('master')
    git.pull()

Anstatt Repo('{}/..'.format(os.getcwd())).gitverwenden os.path.abspath:

git = Repo(os.path.abspath('{}/..'.format(os.getcwd())).git
git.checkout('master')
git.pull()

  • gibt das gleiche Problem, mit dem ich derzeit konfrontiert bin

    – Anfänger

    11. März 2016 um 20:14 Uhr

Laufen git commandssollte der aktuelle Ordner a git repo.

.git repo sollte vorhanden sein, um Git-Befehle auszuführen.

Das ist der Grund für den Fehler.

Das Problem ist, dass Sie verwenden os.getcwd() die das aktuelle Arbeitsverzeichnis zurückgibt. Wenn Sie gerade draußen stehen folder2 diese Funktion kehrt zurück ~/wofc/folder1.

Sie sollten es gegen etwas austauschen wie:

import os
os.path.dirname(os.path.abspath(__file__))

Zum Beispiel so:

import os
path = os.path.dirname(os.path.abspath(__file__))
git = Repo('{}/..'.format(path)).git
git.checkout('master')
git.pull()

  • falsche Antwort, das Repo-Verzeichnis befindet sich nicht im selben Pfad!

    – Ali Nikneschan

    11. März 2016 um 20:07 Uhr

Python Git Modul Ungultiger Git Repository Fehler
qneill

Wie user1846747 sagte, benötigt gitPython ein Repo-Objekt, um einen Git-Befehl auszuführen.

Dies ist ein klassisches Bootstrap-Problem (Huhn-und-Ei-Problem): „Wie kann ich einen Git-Befehl ausführen, der GitPython ausführt, um herauszufinden, wo sich der Repo-Stamm befindet, wenn ich wissen muss, wo der Stamm ist, um ein Repo-Objekt zu erstellen, um einen Git-Befehl auszuführen ?”

@MaxNoe löste dies in Finden Sie den Stamm des Git-Repositorys, in dem sich die Datei befindet, mit seinem python-gitpath-Projekt httpsgithub.com/MaxNoe/python-gitpath

998050cookie-checkPython-Git-Modul Ungültiger Git-Repository-Fehler

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy