Wie automatisieren Sie Git-Aufgaben, für die eine Commit-Nachricht erforderlich ist?

562
JETM

Ich schreibe ein Skript, um eine Git-Aufgabe zu automatisieren. Wenn Sie dies manuell tun, gibt es ein paar Punkte, an denen git vim öffnet, um eine Festschreibungsnachricht zu bearbeiten, und ich muss sie eingeben :wq. Gibt es eine Möglichkeit, diese Tastatureingaben aus meinem Skript vorab zu senden, jedoch nur, wenn vim geöffnet wird? Gibt es alternativ eine Möglichkeit, das Öffnen von vim überhaupt zu vermeiden?

Ich verwende tcsh.

1
Und was genau ist die Git-Aufgabe? Daniel B vor 7 Jahren 0
@DanielB `git subtree pull --prefix foo / bar / Pfad Repo-Zweig --squash` JETM vor 7 Jahren 0
Haben Sie versucht, die Option `--message =` (oder `-m`) von git subtree zu verwenden, um eine Commit-Nachricht vorab bereitzustellen? Das sollte in erster Linie verhindern, dass sich vim öffnet. 8bittree vor 7 Jahren 1
@ 8bittree Gute Idee. Es ist vorzuziehen, dass ich die automatisch generierte Nachricht aufbewahre, aber ich bin sicher, ich kann etwas Hacker ausarbeiten, um sie abzuleiten, wenn nichts einfacher ist. JETM vor 7 Jahren 0
@ 8bittree Perfekt! JETM vor 7 Jahren 0
Ich habe Ihre Frage (ausstehende Genehmigung) so bearbeitet, dass sie sich mehr auf Ihr tatsächliches Problem als auf eine bestimmte potenzielle Lösung konzentriert. Fühlen Sie sich frei, meine Bearbeitung abzulehnen oder zurückzusetzen, wenn Sie mit meinen Änderungen nicht einverstanden sind. 8bittree vor 7 Jahren 0

1 Antwort auf die Frage

2
8bittree

Sie könnten es einfach vermeiden, Vim überhaupt zu öffnen.

Eine Möglichkeit hierfür ist, die --message=<message>(oder -m <message>kurz für) Option zu verwenden git subtree pull. Der Nachteil ist, dass Sie die von git bereitgestellte Standardnachricht nicht verwenden können und stattdessen eine eigene Nachricht erstellen müssen. Der Vorteil ist, dass dies fast überall funktionieren sollte, wo git eine Commit-Nachricht benötigt.

Eine weitere Option, die funktioniert die Standardmeldung verwenden ist, den „Editor“ zu ändern, dass git Katze öffnet. Denken Sie daran, es sofort wieder zu ändern:

git config --local core.editor /path/to/cat git subtree pull --prefix foo/bar/path repo branch --squash git config --local core.editor /path/to/vim-or-other-editor 

Der Vorteil dabei ist, dass Sie die von git bereitgestellte Standardnachricht verwenden können. Der Nachteil ist, dass dies nicht funktioniert, wenn die standardmäßige Festschreibungsnachricht leer ist git commit.