Jeśli robisz to samo wiele razy, to zautomatyzuj/napisz skrypt do tego! – To samo dotyczy pracy z gitem! Poniżej kilka git aliasów, które przydają i przydawały mi się w pracy z gitem i webmethods.
Konfiguracja
Konfiguracja: Wchodzicie w {miejsce, gdzie macie zainstalowanego gita}/git/mingw64/etc/
edytujecie .gitconfig i dodajecie git aliasy w ten sposób:
[alias]
newb = "!f() { ticketnum=$1; git checkout -f sandbox; git pull; git checkout -b \"iss_${ticketnum}\"; }; f"
...
//Przykład schematu aliasu
TwójAlias = "!f() { logika komendy; kolejny krok po średniku; }; f"
Plik z wszystkimi aliasami znajdziesz tutaj:
Git aliasy przydatne w codziennej pracy
git newb
Przykład użycia: git newb 1123123
Działanie: git przechodzi na główny branch projektowy (standardowo master) pulluje najnowsze zmiany, odbija nowego brancha z przedrostkiem iss_ (tutaj należy zmienić w zależności od tagu waszego projektu) i przechodzi na nowo utworzony branch.
newb = "!f() { ticketnum=$1; git checkout -f master; git pull; git checkout -b \"iss_${ticketnum}\"; }; f"
git bclean
Działanie: na bazie wyniku z komendy git branch –merged, usuwa wszystkie już zmergowane gałęzie lokalne.
bclean = "!f() { git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -r git branch -d; }; f"
git ffm
Działanie: merguje najnowsze zmiany z brancha głównego (w moim przypadku to sandbox) do aktualnego brancha (stosować tylko wtedy gdy zmiany, które chcemy zmergować do głównego brancha są już zacomitowane).
ffm = "!f() { currentBranch=$(git rev-parse --abbrev-ref HEAD); git checkout -f master; git pull; git checkout ${currentBranch}; git merge master; }; f"
Alternatywą dla tej komendy jest alias robiąca rebase na branchu, na którym teraz pracujesz, a głównym branchem – przydatne gdy główny branch ma włączoną opcję Fast-Forward:
git ffr (wymaga force push) – używaj tylko jeśli pracujesz sam na branchu
ffr = "!f() { git pull --rebase origin master; }; f"
git pushnew
Działanie: pushuje comitty do nowo utworzonego brancha, na którym aktualnie się znajdujesz i jeszcze nie zrobiłeś żadnego pusha.
pushnew = "!f() { currentBranch=$(git rev-parse --abbrev-ref HEAD); git push origin ${currentBranch}; }; f"
Git aliasy przydatne w pracy z webmethods
git addflow
Przykład użycia: git addflow addDocument putDocument …
Działanie: staguje flowy do commita – wyszukuje ścieżkę do folderu i dodaje folder do commita.
addflow = "!f() { for var in "$@"; do flow=$(find -name $var); git add \"$flow\"; done; }; f"
git addjs
Przykład użycia: git addjs getProperty loadErrorCodes…
Działanie: wyszukuje skompilowany kod Java servicu, java.frag i node.ndf tego servicu i staguje to do commita.
addjs = "!f() { for var in "$@"; do js=$(find -name $var); jsDirname=$(dirname ${js}); jsCodeFile=$(basename ${jsDirname}); jsCodeFilePath=$(find -name ${jsCodeFile}.java); git add \"$jsCodeFilePath\"; git add \"$js\"; done; }; f"
git addman
Działanie: staguje do commita plik manifestu danego pakietu ISowego (przydatne w przypadku konfiguracji startup service, lub zależności pakietowych)
addman = "!f() { manifest=$(find -name manifest.v3 -print -quit); git add ${manifest}; }; f"
A Ty, z jakich aliasów korzystasz? Tworzysz własne aliasy, czy tylko GUI? Daj znać w komentarzu!