Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • rlacko/git-presentation
  • blintmester/git-presentation
2 results
Show changes
Commits on Source (19)
Showing with 755 additions and 397 deletions
node_modules
\ No newline at end of file
image: kroniak/ssh-client
stages:
- deploy
home:
stage: deploy
before_script:
- eval $(ssh-agent -s)
- echo "$SSH" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh/socket
- chmod 700 ~/.ssh
- cp .magic_ssh_config ~/.ssh/config
script:
# AFS magic incoming
- ssh rlacko@centaur.sch.bme.hu cp /afs/sch.bme.hu/home/rlacko/.system/rlacko.keytab /tmp/rlacko.keytab
- ssh rlacko@centaur.sch.bme.hu kinit -k -t /tmp/rlacko.keytab rlacko
- ssh rlacko@centaur.sch.bme.hu rm /tmp/rlacko.keytab
- ssh rlacko@centaur.sch.bme.hu aklog sch.bme.hu -k SCH.BME.HU
- ssh rlacko@centaur.sch.bme.hu mkdir -p /home/rlacko/public_html/git
# actual work
- scp -r $PWD/* rlacko@centaur.sch.bme.hu:/home/rlacko/public_html/git/
only:
refs:
- master
Host *
StrictHostKeyChecking no
ControlMaster auto
ControlPersist yes
ControlPath ~/.ssh/socket/%r@%h:%p
This diff is collapsed.
# Git előadás
# Git doksi
[Bevezető](/guide/intro/1_intro.md)
<script>
window.location.href += "guide/intro/1_intro.md";
</script>
# Tartalom
- Bevezető
- [Intro](intro/1_intro.md)
- [Verziókezelés](intro/2_versioning.md)
- [Git története](intro/3_history.md)
- Git használata
- [Telepítés és konfiguráció](workshop/1_installation.md)
- [Alapok](workshop/2_basics.md)
- [Elágazás, "Branchelés"](workshop/3_branch.md)
- Távoli Repository
- [Alapok, SSH kulcs](remote/1_basics.md)
- [Github](remote/2_github.md)
- [Issue, merge request, Fork](remote/3_issue_merge_fork.md)
- Forrás
- [Pro Git könyv](https://git-scm.com/book/en/v2/)
- [Főoldal]()
- Bevezető
- [Intro](intro/1_intro.md?id=intro)
- [Verziókezelés](intro/2_versioning.md?id=verziókezelés)
- [Helyi](intro/2_versioning.md?id=helyi)
- [Központosított](intro/2_versioning.md?id=központosított)
- [Megosztott](intro/2_versioning.md?id=megosztott)
- [Git története](intro/3_history.md?id=git-története)
- Git használata
- [Telepítés és konfiguráció](workshop/1_installation.md?id=telepítés-és-konfiguráció)
- [Telepítés](workshop/1_installation.md?id=telepítés)
- [Konfiguráció](workshop/1_installation.md?id=konfiguráció)
- [Alapok](workshop/2_basics.md)
- [Elágazás, "Branchelés"](workshop/3_branch.md)
- Távoli Repository
- [Alapok, SSH kulcs](remote/1_basics.md)
- [Github](remote/2_github.md)
- [Issue, merge request, Fork](remote/3_issue_merge_fork.md)
- Forrás
- [Pro Git könyv](https://git-scm.com/book/en/v2/)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description" />
<meta
name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
/>
<link
rel="stylesheet"
href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css"
/>
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
loadSidebar: true,
alias: {
"/.*/_sidebar.md": "/_sidebar.md",
},
name: "",
repo: "",
};
</script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
</body>
</html>
# Alapok, SSH kulcs
# Github
# Issue, merge request, Fork
# 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)
# Elágazás, "Branchelés"
[Előző](workshop/2_basics) | [Következő](remote/1_basics)
favicon.ico

6.37 KiB

......@@ -12,7 +12,7 @@ Ja és előre is bocsi a helyesírási hibákért, várom majd
a javításokat a dokumentáció [git repo-jába](https://github.com/rlacko58/gitPresentation) :)
Amire szükséged lesz: Egy konzol működő git-el ([Workshop elején](workshop/1_installation.md)
közösen feltelepítjük)
van egy útmutató)
## Tippek
......@@ -24,14 +24,18 @@ belefektett munkát.
## Ki vagyok én?
Rafael László, harmadéves mérnökinformatikus szoftverjlesztő speces hallgató. Jelenleg a DevTeam körvezetője, de a KSZK többi körében is aktívan tevékenykedem. Jelenleg főleg webfejlesztéssel foglalkozom, olyan projekteken dolgoztam, mint az AdminSCH vagy a KSZK Újonc weboldala.
Rafael László (Lackó), harmadéves mérnökinformatikus
szoftverjlesztő speces hallgató.
Jelenleg a DevTeam körvezetője, de a KSZK többi körében
is aktívan tevékenykedem.
Manapság főleg webfejlesztéssel foglalkozom,
olyan projekteken dolgoztam, mint az AdminSCH
vagy a KSZK Újonc weboldala.
Ha bármi kérdésed merülne fel a doksi olvasása vagy az előadás
során nyugodtan keress meg
- Emailben: rafael.laszlo [kukac] kszk.bme.hu
- [Facebookon](https://www.facebook.com/rlacko58/)
- [Githubon](https://github.com/rlacko58)
- Emailben: laszlo.rafael [kukac] kszk.bme.hu
<div style="text-align:center"><img src="intro/img/me.jpg" alt="Kép magamról" /></div>
<div style="text-align:center"><img src="guide/intro/img/me.jpg" alt="Kép magamról" /></div>
[Következő](intro/2_versioning)
Forrás: [Pro Git könyv](https://git-scm.com/book/en/v2/)
# Verziókezelés
Mi is az a verzió kezelés?
Talán a legegyszerűbb egy példán keresztül szemléltetni.
Tegyük fel egy docx fájlt szerkesztünk és ezt hetente frissítve
rendszeresen el kell küldenünk emailben valakinek.
Talán a legegyszerűbb egy példán keresztül szemléltetni.
Tegyük fel egy docx fájlt szerkesztünk és ezt hetente
frissítve rendszeresen el kell küldenünk emailben valakinek.
Ilyenkor különböző verziók keletkeznek a fájlból és ezeket
a postafiókunkból könnyedén előtudjuk szedni.
......@@ -12,33 +12,33 @@ Mi van ha lokális kezdjük ezeket a fájlokat tárolni?
Gondolom mindenki találkozott már hasonló fájlnevekkel:
```
elso_beadasom.docx
masodik_beadasom.docx
masodik_beadasom (1).docx
masodik_beadasom (1) Javított.docx
masodik_beadasom (1) Javított másolata.docx
asd.docx
asdasd.docx
asdasdasdasd.docx
├── elso_beadasom.docx
├── masodik_beadasom.docx
├── masodik_beadasom (1).docx
├── masodik_beadasom (1) Javított.docx
├── masodik_beadasom (1) Javított másolata.docx
├── asd.docx
├── asdasd.docx
└── asdasdasdasd.docx
```
Ha ügyesek vagyunk még mappákat is készítünk és dátumot is hozzá cimkézünk.
```
2020/
09/
13/
elso_beadasom.docx
19/
masodik_beadasom_felkesz.docx
20/
masodik_beadasom.docx
masodik_beadasom_javitott.docx
masodik_beadasom_vegleges.docx
ideiglenes/
asd.docx
asdasd.docx
asdasdadsads.docx
└── 2020
└── 09
├── 13
│ └── elso_beadasom.docx
├── 19
│ └── masodik_beadasom_felkesz.docx
├── 20
│ ├── masodik_beadasom.docx
│ ├── masodik_beadasom_javitott.docx
│ └── masodik_beadasom_vegleges.docx
└── ideiglenes
├── asd.docx
├── asdasd.docx
└── asdasdadsads.docx
```
Persze az operációs rendszer képes dátum alapján rendezni,
......@@ -79,18 +79,17 @@ hozzá és nem felülírjuk a módosításaink.
### Megosztott
Na és itt lépünk be ma is használt Git világába.
Na és itt lépünk be a ma is használt Git világába.
Ennél a megoldásnál már az a trükk, hogy mindenkinek meg van
a teljes projekt az összes verziójával. Felmerül, hogy na
de akkor honnan szedjük le a legújabb verziót?
Különböző megoldások léteznek, például a fejlesztők a
módosításokat azonnal megosztják egymással (pl.: p2p Torrenthez hasonló módon) vagy
kijelölnek egy központi szervert amivel mindenki szinkronban
van.
Ilyen például a Github vagy a Gitlab.
módosításokat azonnal megosztják egymással
(pl.: p2p Torrenthez hasonló módon) vagy
kijelölnek egy központi szervert amivel mindenki
szinkronban van.
Ilyen központi szerver lehet például a Github vagy a Gitlab.
Csak megjegyzem, de akár a módosításokat Emailben is ellehet
küldeni és a szoftver automatikusan megcsinálja a többi a mi részünkön.
<div style="text-align:center"><img src="intro/img/vcstype_distributed.png" alt="Distributed Version Control Systems" /></div>
[Előző](intro/1_intro) | [Következő](intro/3_history)
<div style="text-align:center"><img src="guide/intro/img/vcstype_distributed.png" alt="Distributed Version Control Systems" /></div>
......@@ -30,5 +30,3 @@ Ekkoriban
Így hát megírta a [Git-et](https://en.wikipedia.org/wiki/Git), mely a mai napig a legelterjedtebb, leggyorsabb és
legkényelmesebb verzió kezelő rendszerünk.
[Előző](intro/2_versioning) | [Következő](workshop/1_installation)
File moved