Vállalati Információs Rendszerek

Verzió követő rendszerek

Git

Belső GitLab szerver: http://vir.inf.u-szeged.hu:8181

Publikus teszt repository: http://vir.inf.u-szeged.hu:8181/hpeter/test-project-public.git

Privát teszt repository: http://vir.inf.u-szeged.hu:8181/hpeter/test-project.git

Feladatok:

In [47]:
git clone http://vir.inf.u-szeged.hu:8181/hpeter/test-project-public.git
Cloning into 'test-project-public'...
remote: Counting objects: 191, done.
remote: Compressing objects: 100% (90/90), done.
remote: Total 191 (delta 87), reused 157 (delta 69)
Receiving objects: 100% (191/191), 54.10 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.
  • Noha ez a leggyorsabb módja az indulásnak, nem ez a legbiztonságosabb/legkényelmesebb hosszabb távon
    • Titkosított módon SSH protokollon keresztül is elérhető a repository
    • Asszimetrikus titkosítás használata (privát/publikus kulcspár szükséges)
    • Publikus kulcsot feltöltjük GitLab-ra, és a privát kucslunk segítségével további ellenőrzés nélkül kommunikálhatunk a szerverrel
    • SSH kulcs generálás és beállítás lépései:
      • Kulcspár generálása
In [56]:
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Your identification has been saved in /home/vir/.ssh/id_rsa.
Your public key has been saved in /home/vir/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:d6TUzJZMVta+gfaOtjXYvgC6bZrWTnZzFhqWD4gqvpA vir@vir
The key's randomart image is:
+---[RSA 2048]----+
|            o.o. |
|           B o  .|
|          . O .. |
|         ..+.o...|
|        S.ooo=..o|
|    .   ....o Bo.|
|   E . . ..o *oB |
|    o .  .*o.oB..|
|     o. .++o...o.|
+----[SHA256]-----+
In [62]:
rm -rf test-project-public
git clone git@vir.inf.u-szeged.hu:hpeter/test-project-public.git
Cloning into 'test-project-public'...
remote: Counting objects: 191, done.
remote: Compressing objects: 100% (90/90), done.
remote: Total 191 (delta 87), reused 157 (delta 69)
Receiving objects: 100% (191/191), 54.10 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.
In [63]:
ls -d -l */
ls -l test-project-public
cd test-project-public
drwxrwxr-x 3 vir vir 4096 Sep  6 12:18 test-project-public/
total 4
-rw-rw-r-- 1 vir vir 6 Sep  6 12:18 README.md
  • Mindenki hozzon létre egy új txt fájlt a saját h-s azonosítójával, a tartalma pedig legyen a név és Neptun kód
In [64]:
echo "Peter Hegedus (B4Q6OL)" > hpeter.txt
ls -l .
total 8
-rw-rw-r-- 1 vir vir 23 Sep  6 12:18 hpeter.txt
-rw-rw-r-- 1 vir vir  6 Sep  6 12:18 README.md
  • Adjuk hozzá a repository-hoz és commit-áljuk fel (git add, git commit)
In [65]:
git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	hpeter.txt

nothing added to commit but untracked files present (use "git add" to track)
In [66]:
git add hpeter.txt
git commit -m "hpeter.txt is added to repository."
[master bf86a1a] hpeter.txt is added to repository.
 1 file changed, 1 insertion(+)
 create mode 100644 hpeter.txt
  • Szinkronizáljuk fel a saját repository-t a központra (git push origin master)
In [67]:
git push origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 315 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@vir.inf.u-szeged.hu:hpeter/test-project-public.git
   4fec872..bf86a1a  master -> master
  • Frissítsük a repository-t (git pull)
In [68]:
git pull origin master
From vir.inf.u-szeged.hu:hpeter/test-project-public
 * branch            master     -> FETCH_HEAD
Already up-to-date.
  • Tanulmányozzuk a history-t, fájl módosulásokat (git log, git diff)
In [75]:
git log -n 3
git diff README.md
commit bf86a1ad63a104973bb62865da63ba4423bdf92c
Author: Peter <peter.h84@gmail.com>
Date:   Thu Sep 6 12:19:12 2018 +0200

    hpeter.txt is added to repository.

commit 4fec8724b4e9ca50f521fbea5f852deb3b6dba34
Author: Peter <peter.h84@gmail.com>
Date:   Thu Sep 6 09:55:18 2018 +0200

    Cleaning up.

commit 60d57c75dfa0175d9b61804139e20626cf73c275
Author: Balint <s@b.h>
Date:   Wed Sep 13 19:20:40 2017 +0200

    Useful commit message...
diff --git a/README.md b/README.md
index e2e1292..19a275b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1 @@
-Public
\ No newline at end of file
+Public2
  • Hozzunk létre új branchet (bővebben itt):
In [76]:
git checkout -b hpeter
git push origin hpeter
git branch
M	README.md
Switched to a new branch 'hpeter'
Total 0 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for hpeter, visit:
remote:   http://vir.inf.u-szeged.hu:8181/hpeter/test-project-public/merge_requests/new?merge_request%5Bsource_branch%5D=hpeter
remote: 
To git@vir.inf.u-szeged.hu:hpeter/test-project-public.git
 * [new branch]      hpeter -> hpeter
* hpeter
  master
  • Végezzünk módosításokat és commit-oljuk fel
In [79]:
git add README.md
git commit -m "Readme is modified."
git push origin hpeter
[hpeter 9fedcc6] Readme is modified.
 1 file changed, 1 insertion(+)
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 289 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for hpeter, visit:
remote:   http://vir.inf.u-szeged.hu:8181/hpeter/test-project-public/merge_requests/new?merge_request%5Bsource_branch%5D=hpeter
remote: 
To git@vir.inf.u-szeged.hu:hpeter/test-project-public.git
   943abab..9fedcc6  hpeter -> hpeter
  • Merge-ljük vissza a módosításokat a master branchre
In [80]:
git checkout master
git pull origin master
git merge hpeter
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
From vir.inf.u-szeged.hu:hpeter/test-project-public
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Updating bf86a1a..9fedcc6
Fast-forward
 README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  • Végül töltsük is fel GitLab-ra, mert eddig csak a saját gépünkön lévő lokális repozitory-ban látszik
In [81]:
git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To git@vir.inf.u-szeged.hu:hpeter/test-project-public.git
   bf86a1a..9fedcc6  master -> master

Feladatok:

  • A fenti lépéseket megcsinálni SVN repository-val
  • Pl. checkout
In [8]:
svn co http://vir.inf.u-szeged.hu/svn/myproject/
A    myproject/aaa.txt
A    myproject/h664675.txt
A    myproject/hpeter2.txt
A    myproject/test.txt
Checked out revision 5.

További lépések:

  • Tartalom létrehozása a working directory-n belül
  • Új fájl hozzáadása a verziókövetéshez
  • Feltöltés
  • Módosítási log bejegyzések lekérése
In [9]:
cd myproject
echo "Peter Hegedus (B4Q6OL)" > hpeter_test.txt
ls -l .
total 20
-rw-rw-r-- 1 vir vir  4 Jun 17 14:42 aaa.txt
-rw-rw-r-- 1 vir vir 23 Jun 17 14:42 h664675.txt
-rw-rw-r-- 1 vir vir 23 Jun 17 14:42 hpeter2.txt
-rw-rw-r-- 1 vir vir 23 Jun 17 14:43 hpeter_test.txt
-rw-rw-r-- 1 vir vir  8 Jun 17 14:42 test.txt
In [10]:
svn add hpeter_test.txt
A         hpeter_test.txt
In [12]:
svn commit -m "New file is added"
Adding         hpeter_test.txt
Transmitting file data .done
Committing transaction...
Committed revision 6.
In [15]:
svn update
svn log
Updating '.':
At revision 6.
------------------------------------------------------------------------
r6 | hpeter | 2019-06-17 14:44:15 +0200 (Mon, 17 Jun 2019) | 1 line

New file is added
------------------------------------------------------------------------
r5 | hpeter | 2019-06-17 11:53:33 +0200 (Mon, 17 Jun 2019) | 1 line

ttt
------------------------------------------------------------------------
r4 | hpeter | 2019-06-17 11:51:40 +0200 (Mon, 17 Jun 2019) | 1 line

Test
------------------------------------------------------------------------
r3 | D81J6B | 2017-09-13 16:19:59 +0200 (Wed, 13 Sep 2017) | 1 line

Grácián commit
------------------------------------------------------------------------
r2 | hpeter | 2017-09-13 15:08:21 +0200 (Wed, 13 Sep 2017) | 1 line

Change.
------------------------------------------------------------------------
r1 | hpeter | 2017-08-23 15:46:10 +0200 (Wed, 23 Aug 2017) | 1 line

Test txt.
------------------------------------------------------------------------

Egyéb feladatok:

  • 1) (3 pont)
  • Regisztráljunk a GitHub-ra és/vagy GitLab-ra
  • Készítsünk egy saját repository-t
  • Töltsük fel egy README.md-vel
  • 2) (3 pont)
  • git használata SSH key-jel Windows-on (PuTTY, plink, pageant, puttygen)

Technikai információ:

A vir.inf.u-szeged.hu szerver csak belső hálózatról elérhető.

Kintről SSH tunnel segítségével orvosolható a probléma, pl. GitLab elérése.

Linuxon parancssori ssh kliens, Windows-on szükséges program pl. a Putty - http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

  1. Category/Session Host name: linux.inf.u-szeged.hu
  2. Category/Connection/SSH/Tunnels
    • Source port: 8181
    • Destination: vir.inf.u-szeged.hu:8181
    • Add gomb megnyomása
  3. Category/Connection/SSH Enable compression
  4. Category/Session Saved session
    • Adjunk neki egy nevet: linux.inf
    • Save gomb megnyomása
    • A listában duplaklikk a linux.inf-re
  5. Mindenhol, ahol eddig http://vir.inf.u-szeged.hu:8181 URL-t használtunk, cseréljük http://localhost:8181/