2017-01-19 4 views
0

Es ist ein git Haken für precommit Es wird angenommen, esformatter Befehl für jede Datei geändert (inszenierten) auszuführen,Git Haken precommit hat nicht funktioniert

#!/bin/sh 

for fil in $(git diff --name-only --staged | grep ".js"); do 
esformatter -i$ fil & git add $fil; 
done 

git commit -m "Adding format to files" 

Eigentlich wollte ich, dass dieser Code in der ausgeführt wird, Gleiches commit, aber ich weiß nicht, wie es geht. Der Code funktioniert tatsächlich bis zum fertigen Teil. Aber die Dateien werden dem Commit nicht hinzugefügt, deshalb brauche ich den Commit-Teil.

Grüße

+0

Wäre es sinnvoll https://nathanhoad.net/git-amend-your-last zu verwenden -commit zu ändern, um dies zu erreichen? in der gleichen commit – arnoldssss

+0

Obviusly wenn es keine Antworten gibt gibt es downvotes bravoo !! – arnoldssss

Antwort

1

Zuerst denken aus, wenn dies die Wurzel Sie nehmen wollen. Wenn man die Commits von Personen im laufenden Betrieb ändert, kann dies dazu führen, dass man die Straßen nur schwer entwirren kann.

Zweitens, wenn Sie die Änderungen in der gleichen Commit verlassen möchten, können Sie einfach die git commit -m "Adding format to files" Zeile entfernen, so dass es kein separates Commit durch die Githook getan.

Wenn das nicht funktioniert, können Sie versuchen, es als post-commit Haken hinzuzufügen und tun git commit --amend

+0

Ich habe das versucht ... keine Commit machen, aber es wird ohne diese Änderung veröffentlicht ... lass mich das nochmal überprüfen – arnoldssss

+0

Also muss ich die Dateien nicht hinzufügen? – arnoldssss

+0

Ja, es funktioniert nicht, die Dateien werden geändert, sind aber nicht gespeichert. Wenn ich also den git push mache, werden nur die ursprünglichen Änderungen und nicht der formatierte Code gesendet. Der formatierte Code wird nicht inszeniert – arnoldssss