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 (30)
Showing with 851 additions and 97 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)
- [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/)
<!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>
# Verziókezelés
Fájlkezelés, mentések,
`projektem_2019.12.01_copy_copy(3).docx`
# Git története
Git, mint verziókezelő
# Alapok, SSH kulcs
# Github
# Issue, merge request, Fork
# Telepítés és konfiguráció
# Alapok
# Elágazás, "Branchelés"
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,12 +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/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>
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.
Ilyenkor különböző verziók keletkeznek a fájlból és ezeket
a postafiókunkból könnyedén előtudjuk szedni.
Na ugyanazen a példán tovább mehetünk.
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
```
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
```
Persze az operációs rendszer képes dátum alapján rendezni,
és megspórol nekünk pár lépést, de mi van ha ezt valakinek
el is szeretnénk küldeni? Mi van ha a módosítás dátuma közben
módosul? Hogyan biztosítjuk, hogy közben nem sérülnek a fájlok?
Ezekre megoldást adnak a különböző verziókezelő rendszerek.
Többek közt dolguk, hogy fájljaink számon tartsák, ahogy például
kézileg tettük.
### Milyen verzió kezelő rendszereink lehetnek?
#### Helyi
Erre a fenti példa legjobb példa.
Vannak különböző verziói a fájlunknak és ezeket valamilyen
adatbázisban rögzítjük.
<div style="text-align:center"><img src="intro/img/vcstype_local.png" alt="Local Version Control Systems" /></div>
Ilyen az [RCS](https://www.gnu.org/software/rcs/)
### Központosított
Ez már egy fokkal okosabb.
A különböző verziókat a központi szerverre rakjuk fel és
onann szedjük le.
Például van egy Fájlszerverünk amit minden gépről elérnek
az emberek és oda dolgoznak közösen.
Érezhető probléma, hogy így ha meghal a központi szerver,
akkor mindent elvesztünk.
Továbbá probléma lehet, hogy egymás munkáját felülírjük,
szerencsére egy jó rendszernél erről értesítést kapunk,
hozzá és nem felülírjuk a módosításaink.
<div style="text-align:center"><img src="intro/img/vcstype_central.png" alt="Centralized Version Control Systems" /></div>
### Megosztott
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 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="guide/intro/img/vcstype_distributed.png" alt="Distributed Version Control Systems" /></div>
# Git története
Még mielőtt belemerülnék a git telepítésébe, használatába,
szeretnék némi sztorizást is megejteni.
Annó a Linux kernel fejlesztése során okozott nagy fejtörést
az egész verziókezelés megoldása.
1991-től 2002-ig, tehát 11 éven át patchekben
(pl.: e-mailben elküldött szöveg a módosításokkal)
és tömörített fájlokban küldözgették a verziókat a fejlesztők.
Aztán 2002-től egy zárt licenszű verzió kezelőre, a
[BitKeeper](http://www.bitkeeper.org/)-re váltottak.
Ezt a Linux fejlesztői ingyen használhatták egészen 2005-ig,
mikorra annyira elromlott a kapcsolat a fejlesztők és a cég
között, hogy elvették tőlük a licenszt.
Az i-re a pontott az tette le, mikor az egyik
kernel fejlesztő
[reverse engineer-elte](https://lwn.net/Articles/132938/)
a BitKeeper-t.
Ekkoriban
[Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds)
úgy döntött, hogy egy új megoldást kell találnia, mely
- Gyors
- Egyszerű
- Támogatja a többszálú fejlesztést
- Teljesen elosztott
- Nagy projekteket is képes kezelni (pl.: Linux kernel)
Í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.