summaryrefslogtreecommitdiff
path: root/1.md
diff options
context:
space:
mode:
Diffstat (limited to '1.md')
-rw-r--r--1.md141
1 files changed, 137 insertions, 4 deletions
diff --git a/1.md b/1.md
index 175dd76..7e76b4d 100644
--- a/1.md
+++ b/1.md
@@ -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