Git: Jak dodać numer zadania z VSTS do ostatnich 5 commit message
W poprzednim poście pokazałem jak automatycznie dodawać numer zadania z VSTS do commit message. Dziś pokażę jak automatycznie dodać ten numer zadania do wielu ostatnich commitów.
Z pomocą przychodzi Nam polecenie git filter-branch
. Polecenie to zastosuje odpowiedni filtr (wybrany przez Nas) do każdego commita w branchu i w efekcie powstanie nowy commit.
Składnia dla tego polecenia składa się z 4 elementów:
- Podstawowe polecenie:
git filter-branch
. - Nazwa filtru np.:
--msg-filter
. - Polecenie / skrypt do wykonania.
- Zakres commitów, które chcemy, aby objął nasz filtr. Bez podania zakresu, filtr będzie zastosowany dla wszystkich commitów w branchu, w którym się aktualnie znajdujemy.
Załóżmy, że chcemy dodać numer zadania z VSTS do ostatnich pięciu naszych commitów, bo zapomnieliśmy tego zrobić w trakcie developmentu. Nasza sytuacja wygląda tak:
Do tego zadania użyjemy filtru –msg-filter.
git filter-branch --msg-filter 'sed "s/\(.*\)/\1 #321/g"' HEAD~5..HEAD
Po wykonaniu polecenia nasza historia wygląda tak:
Jak widać sha-1 commitów uległy zmianie. HEAD~5..HEAD – oznacza, że filtr należy zastosować dla 5 ostatnich commitów. Można zamiast tego wpisać nazwę brancha. Wtedy filtr zostanie zastosowany do wszystkich commitów w podanym branchu np.:
git filter-branch --msg-filter 'sed "s/\(.*\)/\1 #321/g"' feature-branch
Jeśli chciałbyś dowiedzieć się więcej jak działa polecenie filter-branch
albo sed
użyte do edycji commit message, to poniżej są linki.
Źródła:
https://manishearth.github.io/blog/2017/03/05/understanding-git-filter-branch/
http://www.grymoire.com/Unix/Sed.html
1 Komentarz
Git: Jak dodać numer zadania z VSTS do ostatnich 5 commit message – Tomasz Prasołek · 21 października 2018 o 12 h 16 min
[…] Blog przeniesiony: https://tomaszprasolek.wordpress.com/2018/07/27/git-dodanie-nr-zadania-z-vsts-do-ostatnich-5-commit-… […]