Posts

Showing posts with the label git

Managing Secrets in GitLab / Git

Image
Let's say that you have to log in via ssh into an instance, and you work with GitLab, so you want to keep the private key in GitLab somewhere. Is it secure? Let's see! Custom environment variables You can use custom environment variables. Here you can read more about them (Developers cannot change them, only Maintainers and Owners can). There are two types of variables: Variable (the runner creates an environment variable that uses the key for the name and the value for the value) File (the runner creates an environment variable that uses the key for the name. For the value, the runner writes the variable value to a temporary file and uses this path) It seems that we can use File type for our purpose. We can set up it via API or UI . So, let's do that! Go to project's Settings > CI/CD . There will be Variables section (btw, you can specify variables also per group and even for all projects (in admin panel)). Click Add Variable button and add a variable: Key: ...

Dodiff

Ostatnio czÄ™sto muszÄ™ robić diffy w gicie i zapisywać je do plików. PrzykÅ‚adowa nazwa pliku z diffem wyglÄ…da tak: {branch}-{branch/commit}.diff Diffy pomiÄ™dzy poszczególnymi commitami nie sÄ… mi potrzebne. Aby otrzymać takiego diffa można wykonać komendÄ™ git diff {branch/commit} > ~/diffs/{branch}-{branch/commit}.diff . PrzykÅ‚ady: git diff develop > ~/diffs/develop-master.diff git diff 66666 > ~/diffs/66666-develop.diff git diff 18361 > ~/diffs/18361-develop.diff git diff 47529 > ~/diffs/47529-0dbf4fa.diff Jak widać jest trochÄ™ pisania.  po co za każdym razem wpisywać katalog w którym ma zostać stworzony plik po co podawać nazwÄ™ brancha na której wÅ‚aÅ›nie jesteÅ› (i to dwa razy!) ;) pracuj na gałęziach, których nazwy skÅ‚adajÄ… siÄ™ wyłącznie z cyfr to oczoplÄ…su dostaniesz po kilkunastu takich komendach Dlatego też postanowiÅ‚em napisać do tego prostÄ… funkcjÄ™ w bashu. ZaÅ‚ożenie byÅ‚o proste, mam podać nazwÄ™ funkcji i jako pierwszy parametr przekazać nazwÄ™ brancha/...

Vim i gitgutter

Image
Kilka dni temu trafiłem na plugin vim-gitgutter i postanowiłem go wypróbować. W wielkim skrócie plugin odpowiada za pokazywanie w którym miejscu w pliku dokonałeś zmian, coś jak git diff . Korzystam z pathogen , więc aby zainstalować plugin wklepałem: cd ~/.vim/bundle git clone git://github.com/airblade/vim-gitgutter.git I już można się bawić. Posiedziałem nad nim chwilę i naprawdę mi się spodobał, lecz musiałem wprowadzić kilka swoich poprawek :) Po pierwsze, wyłączyłem domyślne pokazywanie różnic, a zbindowałem sobie komendę GitGutterToggle pod <leader>gr . Dzięki temu jak chcę zobaczyć różnicę to wciskam ,gr (klawisz <leader> mam zbindowany pod ","), a jak chcę wyłączyć to wciskam znów to samo. Dodatkowo zbindowałem sobie komendy GitGutterNextHunk i GitGutterPrevHunk odpowiednio pod <leader>d oraz <leader>s . Mogę przez to w łatwy i szybki sposób poruszać się po pliku skacząc z jednej zmiany na drugą. Tak to wygląda w pliku .vimrc :...

Update wszystkich submodułów w GIT

Image
Jeżeli w swoim repozytorium gita korzystasz z kilku/kilkunastu repozytoriów to po dłuższej chwili zacznie cię mocno irytować taka rutyna: wchodzę w submoduł sprawdzam gałąź, czy jest na master odpalam git pull wychodzę z submodułu Jest na to łatwy sposób. Wystraczy wklepać w konsoli: git submodule foreach git pull Ale uwaga, tutaj niespodzianka ;) Jeżeli dopiero co zassałeś swoje repozytorium w którym masz submoduły, to aby działały musisz najpierw odpalić: git submodule init git submodule update --recursive wszystko się oczywiście wykona, ale submoduły zostaną zaktualizowane do konkretnego commita , którego ustawiłeś wykonując wcześniej git push . Co implikuje to, że nie będziesz miał ustawionej gałęzi w żadnym z submodułów. Submoduł będzie wskazywał na konkretnego commita, a nie na gałąź. git submodule update --recursive Jest to oczywiście normalne i tak powinno to działać! Taka jest idea submodułów. Odwołują się do commita, którego im przypisałeś, a nie do konkre...

Submoduły na github.com

Image
SubmoduÅ‚y SubmoduÅ‚y, czyli co zrobić, żeby np. na githubie w jednym repo umieÅ›cić inne repozytoria, aby wyglÄ…daÅ‚o to tak jak poniżej, a nie tak jak na przykÅ‚ad tutaj . Do czego siÄ™ w ogóle przydajÄ… submoduÅ‚y i dlaczego powinieneÅ› je stosować? Wyobraź sobie, że tworzysz swoje repozytorium, które do poprawnej pracy wymaga innych, konkretnych repozytoriów gita. I tutaj z pomocÄ… przychodzÄ… submoduÅ‚y. DziÄ™ki nim twoje repozytorium bÄ™dzie posiadaÅ‚o informacje o tym, gdzie dany submoduÅ‚ siÄ™ znajduje (jego adres) oraz jego ostatnie commit ID. DziÄ™ki takiemu zabiegowi, inni developerzy, którzy sklonujÄ… twoje repo (które wykorzystuje inne repozytoria), nie bÄ™dÄ… musieli siÄ™ martwić, czy wszystko bÄ™dzie dziaÅ‚aÅ‚o tak jak powinno. Unikniesz przez to czasami dziwnych błędów. Np. ktoÅ› dociÄ…gnie zbyt stare repozytorium lub zbyt nowe, albo caÅ‚kowicie innÄ… gałąź, niż tÄ… które wykorzystuje twoje repo ;) OsobiÅ›cie póki co, użyÅ‚em submodułów w moim repo dotfiles . Dodawanie submodułó...

powerline-bash

Image
(Uwaga, zmieniÅ‚a siÄ™ nazwa repo powerline-bash, po wiÄ™cej zapraszam tutaj ) Używasz vima? A używasz w nim  vim-powerline ? JeÅ›li tak, to czemu nie wstawić sobie powerline do konsoli? Używam tego od pewnego czasu i muszÄ™ przyznać, że jest bardzo ciekawym dodatkiem. W czym mi to tak naprawdÄ™ pomaga oprócz tego, że widzÄ™ aktualnÄ… gałąź na której pracujÄ™? Jeżeli zmieniÄ™ coÅ› w którymÅ› z plików, zmieni siÄ™ również kolor gałęzi: To samo stanie siÄ™, jeżeli pójdzie coÅ› nie tak przy wykonywanych operacjach na repo. JeÅ›li dodasz plik, który nie jest Å›ledzony przez gita pojawi siÄ™ "+": Gdy Å›cieżka do katalogu robi siÄ™ zbyt dÅ‚uga, powerline zostaje przyciÄ™ty: I jedna z ciekawszych rzeczy; jeÅ›li lokalne repo różni siÄ™ od "zdalnego" (nie wiem jak najodpowiedniej to przetÅ‚umaczyć na polski) to zostanÄ™ o tym poinformowany: Co od razu mówi mi, że przy pull'u dostanÄ™ 5 commitów :) Informacje o tym jak podpiąć skrypt pod konsolÄ™ znajdziesz tutaj: powerl...