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 (32)
Showing with 848 additions and 77 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ő
- [Bemutatkozás](intro/1_introduction.md)
- [Verziókezelés](intro/2_versioning.md)
- [Git története](intro/3_history.md)
- [Főoldal]()
- Bevezető
- [Bemutatkozás](intro/1_introduction.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/lib/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>
# Bemutatkozás
Rafael László
# 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

# Intro
## Bevezetés
Először is üdvözlök mindenkit. Ezen doksi és előadás
végére remélem sikerül egy olyan szintű tudást átadnom,
hogy a jövőben ne okozzon problémát a verziókezelés.
Olyan kérdésekre fogok választ adni, mint "Miért kell
git-et használnom?", "Miért ilyen bonyolult ez az egész?"
és "Mégis mi a francot nyerek ezzel?".
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)
van egy útmutató)
## Tippek
Próbáld a parancsokat saját magad is kiadni, ugyanis
leghatékonyabban gyakorlati módon lehet a git-et elsajátítani.
Emellett légy kitartó és ne ijedj meg a rengeteg információtól.
A git nem egy egyszerű témakör, de hidd el, megéri a
belefektett munkát.
## Ki vagyok én?
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: laszlo.rafael [kukac] kszk.bme.hu
<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>