2015-08-17 35 views
6

Kiedy jestem popełnienia, tekst ten podskakuje:Git, czytać najnowsze popełnić wiadomość, gdy popełnienie

Please enter the commit message for your changes. Lines starting 
with '#' will be ignored, and an empty message aborts the commit. 

On branch master 
Your branch is ahead of 'origin/master' by 2 commits. 

Changes to be committed: 

    new file: modules/new_file.txt 

Co chcę jest, aby ten tekst informacyjny też pokazuje mi się komunikat o mój ostatni commit, bez mnie potrzebuje przejść przez git log, git show lub coś podobnego.

E.g.

(...) 

Changes to be committed: 

    new file: modules/new_file.txt 

Previous commit message: 
    [FIX] Fixed the foo.bar module 

To jest dokładnie taka sama jak this question, ale żadna z odpowiedzi faktycznie odpowiadając na pytanie, więc myślę, PO prostu poprosił go trochę źle?

+0

Czy używasz vima? – TM90

+0

Nie, używam systemu Windows z Atom, Sublime lub Notepad ++. Jeszcze się nie zdecydowałem, ale obecnie testuję Atom. – chwi

Odpowiedz

5

Istnieje git hook o nazwie prepare-commit-msg, który generuje ten szablon wiadomości zatwierdzania. Powinien być domyślnie plik prepare-commit-msg.sample w katalogu .git. Zmień nazwę, aby usunąć .sample, a następnie zmodyfikuj go tak, aby zawierał git log -1 lub cokolwiek innego, czego możesz chcieć, a otrzymasz go po zatwierdzeniu.

coś takiego

#!/bin/sh 

echo "# Previous commit:" >> $1 
git log -1 -p|sed 's/^\(.\)/# \1/g' >> $1 

powinno wystarczyć.

+0

Okay, nie jestem zaznajomiony ze skryptami basha, próbuję dodać 'echo coś',' dir', 'ls' na początku tego nie robi nic. Czy możesz podać minimalny przykład pracy? EDYCJA: Widzę, że coś wypluwa w git bash przed otwarciem edytora zatwierdzeń. Więc moim problemem jest przejście do sekcji komentarzy w komunikacie zatwierdzenia – chwi

0

Możesz napisać swoje własne polecenie? Może wyglądać mniej więcej tak:

#!/bin/bash 
echo "Last commit message:" 
git log -1 --pretty=%B # only echo commit msg to console 
echo "Enter commit message:" 
read commitmsg # let user enter a commit message 
git commit -m "$commitmsg" 

Następnie należy dodać ten plik do swojej zmiennej PATH.