Neunundneunzig Prozent der Zeit, die unser Team auf lokale Entwicklungsboxen setzt und Commits anstößt, in diesem Fall ist die Autorschaftsinformation über Commits korrekt. In Zeiten von Stress wird jemand jedoch etwas direkt auf dem Dev-Server zwicken und von dort aus committen. Wenn dies der Fall ist, wird für die Autoreninformationen im Commit standardmäßig das freigegebene Bereitstellungskonto verwendet.
Gibt es eine Möglichkeit, Benutzer auf ihre Autoreninformationen beim Commit hinzuzufordern? Sie werden sich nicht daran erinnern, --author
zu machen.
Einige Dinge, die ich mir angeschaut habe, die aber nicht über die Ziellinie kommen konnten, sind:
Gibt es eine Möglichkeit, einen von diesen zur Arbeit zu bringen oder einen guten Weg, dies zu tun?
Okay, ich habe einen Weg gefunden, dies zu tun, aber es funktioniert nur, weil wir ausschließlich über ssh auf diese Box zugreifen, indem wir die schlüsselbasierte Authentifizierung verwenden.
In der /home/deploy/.ssh/authorized_keys
-Datei des freigegebenen Bereitstellungsbenutzers habe ich eine Umgebungsvariable pro Schlüssel hinzugefügt, sodass meine beispielsweise so aussieht:
, das auch hinzugefügt werden musste:
%Vor% zur Datei /etc/ssh/sshd_config
.
Das funktioniert, aber ich würde lieber etwas über eine user.name=ASK
-Einstellung erfahren, wenn so etwas existiert.
Leider konnte ich auch keine wirklich zufriedenstellende Lösung finden. Ich werde alle Lösungen auflisten, die ich bisher gefunden habe (ich denke, du hast bereits die besten 3 in deiner Frage vorgeschlagen).
Speichern Sie das folgende Skript als pre-commit
einholen in .git/hooks/pre-commit
zu verbieten:
Setzen Sie den Benutzernamen auf XXX:
%Vor%Warnung: Dies funktioniert nur für normale Commits. Merge-Commits werden als XXX übernommen. Wahrscheinlich gibt es auch einen Weg, diese Arbeit zu bekommen.
Die einzige Möglichkeit, den Autor mithilfe von Hooks festzulegen, scheint darin zu bestehen, das Commit mit post-commit
hook, siehe auch hier .
Dies ist ein seltsamer Hack mit hässlichen Nebenwirkungen (z. B. Autor in Commit Nachricht falsch angezeigt).
%Vor%Verwenden Sie das folgende Skript, um einen Autor Vorschläge basierend auf letzten Commits zu erhalten:
%Vor%Sieht so aus:
%Vor% Sie können ein Skript git-commit.sh
oder ein Git-Alias git commit-author
erstellen, das zur Verwendung des Autors auffordert und dann git commit --author=<user's selection>
aufruft. Leider ist nicht überschreibbar git commit
.
Ein git-commit.sh
Skript in /usr/local/bin
könnte so aussehen:
Um das Skript als Alias hinzuzufügen, führen Sie:
%Vor%Das ist Ihre eigene Antwort, hier zur besseren Übersicht kopiert:
In der /home/deploy/.ssh/authorized_keys
-Datei des freigegebenen Bereitstellungsbenutzers habe ich eine Umgebungsvariable pro Schlüssel hinzugefügt, sodass meine beispielsweise so aussieht:
, das auch hinzugefügt werden musste:
%Vor% zur Datei /etc/ssh/sshd_config
.
Tags und Links git