2015-05-21 4 views
5

Ich schrieb ein Skript, das Readme.md Datei (für GitHub) durch Scannen des Quellcodes generiert. Jedes Mal, bevor ich ein neues Commit mache, führe ich dieses Skript manuell aus, um Readme.md zu aktualisieren. Es wäre sicher besser, wenn dieser Job automatisch erledigt wird.Script vor dem Commit ausführen und das Update in dieses Commit aufnehmen?

Derzeit verwende ich pre-commit Git Haken, der nur teilweise funktioniert. Die Datei Readme.md wird aktualisiert, das Update ist jedoch nicht Teil dieses Commits. Ich muss es beim nächsten Commit einbeziehen.

Gibt es eine Möglichkeit, dieses Skript auszuführen und die Aktualisierung Teil dieses Commit zu machen?

Antwort

3

Nach this SO thread (Can a Git hook automatically add files to the commit?) funktioniert git add nicht auf Pre-Commit Hook mit der neuesten Version von Git.

Als Workaround können Sie mit Pre-Commit- und Post-Commit-Hooks spielen, um Ihre Readme.md zu generieren, dann nach dem Commit mit dem Post-Commit-Hook zu committen und dann das zweite Commit mit Ihrem zu ändern.

Nicht meine Idee, folgen Sie den Links für ursprüngliche Erklärungen.

Antwort von @bitluck auf dem Thread verknüpft I:

Tippen Sie auf eine Datei .commit oder so etwas. (Achten Sie darauf, diese hinzuzufügen zu .gitignore)

#!/bin/sh 
echo 
touch .commit 
exit 

wenn .commit existiert Sie wissen, ein Commit hat gerade stattgefunden, sondern eine post-commit noch nicht abgelaufen ist. Also können Sie hier Ihre Code-Generierung machen. Zusätzlich Test für .commit und wenn es vorhanden ist:

  • die Dateien hinzufügen
  • begehen --amend -C HEAD --no-verify (vermeiden Looping)
  • löschen .commit

    Datei
    #!/bin/sh 
    echo 
    if [ -a .commit ] 
    then 
        rm .commit 
        git add yourfile 
        git commit --amend -C HEAD --no-verify 
    fi 
    exit 
    
Verwandte Themen