diff options
-rw-r--r-- | 1.md | 141 |
1 files changed, 137 insertions, 4 deletions
@@ -31,7 +31,7 @@ how-to: pandoc -f markdown+smart -t beamer % -o pdf/1.pdf --pdf-engine=xelatex - ![Bertsio kontrol sistema banatuak](img/banatuak.png){ height=300px } -# GIT: Hasiera +# Git: Hasiera ## Kontestua @@ -110,7 +110,7 @@ git config --global core.editor vim - `man` -# GIT: Basikoa +# Git basikoa ## Repositorio bat lortzen @@ -164,8 +164,141 @@ Edo bestela fitxategia eskuz lekuz aldatu eta gero `git rm` + `git add` egin. -## Commit historia ikusteko — I +## Commit historia ikusteko - `git log` -Oso komando komplexua da, eta aukera asko ditu. +Oso komando komplexua da. Aukera asko ditu. + +- `-<N>` azkeneko `<N>` commitak aurkezten ditu. `<N>` zenbaki bat izan behar + da. +- `-p/--patch` commit-en *patch*-a ateratzen du. +- `--stat` estatistikak aurkezteko. +- `--pretty` formatua aldatzeko, modu asko dauzka. +- `--graph` grafiko modua. + +Konbinatu daitezke: + +`git log --graph --pretty=oneline --decorate --all` + +## Commit historia iragazteko + +`git log`-en irteera limitatu daiteke, eskaerak eginez: + +- `--since` noiztik ikusi nahi diren. Adibidez: `--since=2weeks`. +- `--author` autorez iragazi. +- `--grep` commit mezuan *keyword*ak bilatzeko. +- `-S/-G/...` *pikeaxe function* deiturikoak, aldaketetan testua bilatzen dute. +- `git log -- fitxategia` fitxategi horretan gertatutako aldaketak bakarrik + atera. +- `--no-merges` merge commitak deskartatu. + +Laguntza ikusi: `git help log` + + +## Aldaketak desegiteko + +- `git commit --amend` azkeneko commita berridazten du. + - Mezua aldatu + - Fitxategiak edo aldaketak gehitu + - ... + +- `git reset` aldaketak *staging area*tik kentzeko. KONTUZ `--hard`-ekin +- `git checkout` aldaketak desegiteko eta commiteatutako egoera + berreskuratzeko. KONTUZ +- `git restore` komando berria da (>2.23.0) `reset` eta `checkout`-ek egiten + dituzten gauzak egiten dituena, baina intuitiboagoa da. + +## Remoteak + +Repositorioaren kopiak dira. Remoteak eguneratu daitezke repositorio lokaletik +aldaketak igotzen (*push*) edo repositorio lokala eguneratu daiteke remotean +dauden aldaketak ekartzen (*fetch & pull*). + +Remoteak beste makinetan egon daitezke, sarearen bidez sarbidea emanda, edota +makina berdinean, fitxategi sistemaren beste leku batetan. + +## Remote-en kudeaketa + +- `git remote` + +`.git/config` fitxategian daude idatzita. Hortik ere kudeatu daitezke. + + +- `git clone` -k remotea automatikoki gehitzen du konfiguraziora, `origin` + izenarekin. +- `git remote -v` +- `git remote add <izena> <URLa>` +- `git remote show <remotearen_izena>` +- `git remote rename <izena> <izen_berria>` +- `git remote remove <izena>` + + +## Remotearekin informazioa elkarbanatu + +- `git fetch [<remote>]`-ek remotearen informazioa deskargatzen du, + repositorioa zapaldu gabe. + +- `git pull` informazioa deskargatu eta `merge`atzen du adarrak ondo + konfiguratuta badaude: + ``` + git pull = git fetch + git merge + ``` + +- `git push [<remote> <branch>]` datuak eta commitak igotzen ditu. Norbaitek + commitak erdian gehitu baditu ez du uzten (aurrerago azalduko da). + +## Tag-ak + +Commitei jarri ahal zaizkien izenak dira, normalean *release*ak errezago +identifikatzeko. Horrela, tag-en izenak erabiltzen dira *commit-id*-ak balira +moduan baina guk erabakitako izenekin. Adibidez, `v1.0`. + +- `git tag -l` tagak bistaratzeko + +Bi tag mota dago: + +- **Lightweight**: Puntero bat dira. Adar finko baten modukoak +- **Annotated**: Git-en datu basean objetu oso bat dira: Mezu bat daukate, + autorea, sinatu daitezke... + +## Annotated tags + +- `git tag -a <tagaren_izena> [<commit>]` + +`git show` -k erakusten ditu. + +## Lightweight tags + +- `git tag <tagaren_izena> [<commit>]` + +`git show`-k ez ditu erakusten, azpitik dagoen commita erakusten du. + + +## Tag-ak partekatzeko + +- `git push [<remote>] <taga>` +- `git push [<remote>] --tags` guztiak bidaltzeko + +## Tag-ak ezabatzeko + +- `git tag -d <taga>` +- `git push [<remote>] --delete <taga>` + +## Aliasak + +Gitek komandu berriak eratzea ahalbidetzen du aliasen bitartez. Beste +konfigurazio balioak bezala idazten eta irakurtzen dira: + +- `git config --global alias.co checkout` +- `git co` => `git checkout` + +Nik asko erabiltzen dut: + +``` +git config --global alias.lg log --graph \ + --decorate --all --oneline +``` + + +# Git aurreratua: Adarrak |