diff --git a/docs/workshop/2_basics.md b/docs/workshop/2_basics.md index 832f9c6343a5be6187bebe032a99c35cde82eead..985b94a4cd66f463330d29eafdea23cb64d76369 100644 --- a/docs/workshop/2_basics.md +++ b/docs/workshop/2_basics.md @@ -1,3 +1,266 @@ # Alapok +##### Mit tegyek ha elakadok? + +Git-ben van egy beĂŠpĂtett git help parancs: + +``` +$ git help <verb> +$ git <verb> --help +$ man git-<verb> +``` + +PĂŠldĂĄul a config-al kapcsolatos dolgok: + +``` +$ git help config +``` + +De ha csak egy gyors ĂĄttekintĂŠsre van szĂźksĂŠged: + +``` +$ git config -h +usage: git config [<options>] + +Config file location + --global use global config file + --system use system config file + --local use repository config file + --worktree use per-worktree config file + -f, --file <file> use given config file + --blob <blob-id> read config from given blob object + +Action + --get get value: name [value-regex] + ... +``` + +### Repository + +A Git repository egy olyan mappa, mely Git verziĂłkezelĂŠs alatt +ĂĄll. +PĂŠldĂĄul az a mappa, ahol van egy .git mappa, az egy git repo. + +``` +$ ls -al +total 20 +drwxrwxr-x 4 rlacko rlacko 4096 okt 8 12:59 . +drwxrwxr-x 3 rlacko rlacko 4096 okt 7 12:04 .. +drwxrwxr-x 5 rlacko rlacko 4096 okt 7 12:46 docs +drwxrwxr-x 8 rlacko rlacko 4096 okt 8 16:39 .git +-rw-r--r-- 1 rlacko rlacko 17 okt 7 12:09 README.md +``` + +MielĹtt mĂŠg nekilĂĄtnĂĄnk a tĂĄvolli repository leszedĂŠsnek, +csinĂĄlunk sajĂĄtot ĂŠs onnan fogunk tovĂĄbb haladni. + +Hozzunk lĂŠtre egy tetszĹleges projekt mappĂĄt ĂŠs lĂŠpjĂźnk bele + +``` +$ mkdir projektem +$ cd projektem +``` + +NĂŠzzĂźk meg, hogy mi a helyzet a git-el ezzel a mappĂĄban. +Ehhez a `git status` parancsot tudjuk hasznĂĄlni. +Ez a parancs a jelenlegi git repo-nkrĂłl kĂŠpes +informĂĄciĂłkat kiĂrni. + +``` +$ git status +fatal: not a git repository (or any of the parent directories): .git +``` + +Ez igaz, ugyanis teljesen Ăźres a mappa. +`ls -al` -el tudod ellenĹrizni + +TegyĂźk verziĂłkontroll alĂĄ a `git init` paranccsal. + +``` +$ git init . +Initialized empty Git repository in .../projektem/.git/ +``` + +Ha megnĂŠzzĂźk, mostmĂĄr van egy .git mappĂĄnk + +``` +$ ls -al +total 12 +drwxrwxr-x 3 rlacko rlacko 4096 okt 8 16:52 . +drwxrwxr-x 12 rlacko rlacko 4096 okt 8 16:49 .. +drwxrwxr-x 7 rlacko rlacko 4096 okt 8 16:52 .git +``` + +Ebben van minden adatunk a git repo-val kapcsolatban. +Gyakorlatilag ha bĂĄrmely projektbĹl kivesszĂźk ezt a mappĂĄt, +akkor teljes egĂŠszĂŠben visszaĂĄllĂthatĂł belĹle minden fĂĄjl. + +#### VĂĄltoztatĂĄsok mentĂŠse + +Na de hogyan mentĂźnk ebbe az adatbĂĄzisba? + +A fĂĄjljainknak kĂźlĂśnbĂśzĹ ĂĄllapotai lĂŠtezhetnek egy +repo-ban. + +- Untracked: Ami mĂŠg nincs verziĂłkontroll alatt +- Staged: Ami mĂĄr verziĂłkontroll alatt van de mĂŠg nem + mentettĂźk el +- Unmodified: Amit mĂĄr elmentettĂźnk ĂŠs azĂłta nem vĂĄltozott +- Modified: Az a fĂĄjl, ami mĂĄr verziĂłkontroll alatt van + ĂŠs vĂĄltozott. Ezt utĂĄnna szintĂŠn Stage-be tudjuk tenni + +NĂŠzzĂźk meg ezen az ĂĄbrĂĄn ĂŠs egy pĂŠlda projekten keresztĂźl: + +<div style="text-align:center"><img src="workshop/img/git_lifecycle.png" alt="Local Version Control Systems" /></div> + +Mi a jelenlegi helyzet a repo-ban, miutĂĄn inicializĂĄltuk? + +``` +$ git status +... +No commits yet +nothing to commit (create/copy files and use "git add" to track) +``` + +LĂĄthatjuk, hogy mĂŠg nincsenek mentĂŠspontjaink ĂŠs nincs mit +elmentenĂźnk. + +``` +$ git status +On branch master +... +``` + +A branch-rĹl kĂŠsĹbb rĂŠszletesebben beszĂŠlek, de a lĂŠnyeg +egyenlĹre, hogy ez az a a dolog, ahol a mentĂŠspontokat +sorban egymĂĄs utĂĄn feltudjuk venni. + +VegyĂźnk fel egy Ăşj fĂĄjlt: + +``` +echo 'alma' > gyumolcskosar +``` + +Ăjra megvizsgĂĄlva a status-t: + +``` +$ git status +... +Untracked files: + (use "git add <file>..." to include in what will be committed) + gyumolcskosar + +nothing added to commit but untracked files present (use "git add" to track) +``` + +A fĂĄjlunk mĂŠg nincs git-el kĂśvetve, ahogy az ĂĄbrĂĄn is +lĂĄthatjuk. +`git add <fĂĄjl>` segĂtsĂŠgĂŠvel adjuk hozzĂĄ a repo-hoz. + +``` +$ git add gyumolcskosar +``` + +Ezt kĂśvetĹen + +``` +$ git status +... +Changes to be committed: + (use "git rm --cached <file>..." to unstage) + new file: gyumolcskosar +``` + +A fĂĄjlunk ĂĄtkerĂźlt staged mĂłdba ĂŠs ezt akĂĄr mostmĂĄr el is +tudjuk menteni. +A mentĂŠshez a `git commit` parancsot tudjuk +hasznĂĄlni. +`$ git commit` +Kiadva megnyilik a beĂĄllĂtott szĂśvegszerkesztĹnk ĂŠs nĂŠmi +informĂĄciĂł a leendĹ mentĂŠspontrĂłl. + +``` + +# Please enter the commit message for your changes. Lines starting +# with '#' will be ignored, and an empty message aborts the commit. +# +# On branch master +# +# Initial commit +# +# Changes to be committed: +# new file: gyumolcskosar +``` + +LĂĄthatjuk amit a `git status` parancs Ărna ki ĂŠs pĂĄr extra +infĂłt. +A # -el kezdĹdĹ sorok kommentek, ezek nem fognak a commit +Ăźzenetbe belekerĂźlni. +Ărjuk be az elsĹ sorba, hogy `KĂŠszĂtettem egy gyĂźmĂślcskosarat`, +majd mentsĂźk el a fĂĄjlt ĂŠs zĂĄrjuk be a szĂśvegszerkesztĹt. + +``` +$ git commit +[master (root-commit) c45abc3] KĂŠszĂtettem egy gyĂźmĂślcskosarat + 1 file changed, 1 insertion(+) + create mode 100644 gyumolcskosar +``` + +A git mikor ĂŠrzĂŠkelte, hogy bezĂĄrtuk a fĂĄjlt, akkor abbĂłl +kiolvasta a sorokat ĂŠs hozzĂĄadta a mentĂŠspontunkhoz, mint +Ăźzenet. +Ezt lĂĄthatjuk is visszajelzĂŠsben. +TovĂĄbbĂĄ megjelent pĂĄr tovĂĄbbi hasznos informĂĄciĂł is. + +IsmĂŠtelten nĂŠzzĂźk meg mi a helyzet a reponkban: + +``` +$ git status +On branch master +nothing to commit, working tree clean +``` + +MostmĂĄr nem szĂłl amiatt, hogy mĂŠg nincsen mentĂŠsĂźnk, tovĂĄbbĂĄ +azt is Ărja, hogy mĂŠg semmin nem vĂĄltoztattunk, nem tudunk +mit elmenteni. + +NĂŠzzĂźk meg a tovĂĄbbi kĂŠt ĂĄllapotot is amiben lehet egy fĂĄjl. +Ărjuk bele a gyumolcskosar fĂĄjlba, hogy `korte`: + +```gyumolcskosar +alma +korte +``` + +EzutĂĄn kiadva a `git status`-t: + +``` +$ git status +On branch master +Changes not staged for commit: + (use "git add <file>..." to update what will be committed) + (use "git restore <file>..." to discard changes in working directory) + modified: gyumolcskosar + +no changes added to commit (use "git add" and/or "git commit -a") +``` + +LĂĄthatĂł, hogy mostmĂĄr `modified` a fĂĄjlunk, mentsĂźk is el, +de most picit mĂĄskĂŠpp. A git ĂŠs ĂĄltalĂĄban minden Unix +parancsnak ĂĄttudunk adni Ăşgynevezett kapcsolĂłkat. +PĂŠldĂĄul `git commit -m <message>`. +Ez annyit spĂłrol meg nekĂźnk, hogy nem kell szĂśvegszerkesztĹt +megnyitnia a git-nek mikor Ăşj commit-ot kĂŠszĂtĂźnk, +hanem kĂśzvetlen megadhatjuk az Ăźzenetet, **m**esage-et + +Ne felejtsĂźk el elĹszĂśr staged mĂłdba rakni a fĂĄjlt, +kĂźlĂśnben nem tĂśrtĂŠnik mentĂŠs. + +``` +$ git add gyumolcskosar +$ git commit -m "Raktam bele egy kĂśrtĂŠt" +``` + +#### Hogyan tĂĄrolĂłdnak a mentĂŠseink? + [ElĹzĹ](workshop/1_installation) | [KĂśvetkezĹ](workshop/3_branch) diff --git a/docs/workshop/img/git_lifecycle.png b/docs/workshop/img/git_lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..922b02c09110c7f6d9b90380c6e9a14b56cc84ef Binary files /dev/null and b/docs/workshop/img/git_lifecycle.png differ