Tips en Trucs 2016

GitHub

Op GitHub staan veel van de meest waardevolle projecten, ontstaan door bijdragen van ontwikkelaars van over gans de wereld. Dit eenvoudige en zeer krachtig platform help je bij het ontwikkelen van of bijdragen tot grote projecten. Als bonus maak je zo deel uit van de open source gemeenschap.

Als kennismaking installeren en gebruiken we GitHub. Daarbij tonen we hoe GitHub werkt, maken we een lokale opslagplaats (repository), verbinden we de lokale opslagplaats met de online opslagplaats waar iedereen uw werk kan bekijken, het toevoegen van aanpassingen en deze doorsturen naar GitHub.

Daarvoor heb je een GitHub account nodig dat je op GitHub kunt aanmaken.

Installatie

Download en installeer Git met de volgende opdracht:

dany@laptop:~> sudo zypper install git
root's password:
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...

De volgende 14 NIEUWE pakketten zullen worden geïnstalleerd:
  cvs cvsps git git-core git-cvs git-email git-gui gitk git-svn git-web libserf-1-1 libsvn_auth_kwallet-1-0
  subversion subversion-perl

De volgende 5 aanbevolen pakketten zijn automatisch geselecteerd:
  git-cvs git-email git-gui gitk git-svn

Het volgende pakket wordt gesuggereerd, maar zal niet worden geïnstalleerd:
  git-daemon

14 nieuwe te installeren pakketten.
Totale downloadgrootte: 9,0 MiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 43,3 MiB worden
gebruikt.
doorgaan? [j/n/? alle opties tonen] (j): 
pakket cvs-1.12.12-183.1.x86_64 wordt opgehaald                          (1/14), 371,4 KiB (902,3 KiB uitgepakt)
Ophalen: cvs-1.12.12-183.1.x86_64.rpm ....................................................[GEREED (754,9 KiB/s)]
pakket cvsps-2.1-184.2.x86_64 wordt opgehaald                            (2/14),  56,1 KiB (120,6 KiB uitgepakt)
Ophalen: cvsps-2.1-184.2.x86_64.rpm ....................................................................[GEREED]
pakket libserf-1-1-1.3.8-4.2.x86_64 wordt opgehaald                      (3/14),  67,5 KiB (144,4 KiB uitgepakt)
Ophalen: libserf-1-1-1.3.8-4.2.x86_64.rpm ..............................................................[GEREED]
pakket git-core-2.6.6-7.1.x86_64 wordt opgehaald                         (4/14),   3,9 MiB ( 25,8 MiB uitgepakt)
Ophalen: git-core-2.6.6-7.1.x86_64.rpm .....................................................[GEREED (1,3 MiB/s)]
pakket subversion-1.8.10-9.1.x86_64 wordt opgehaald                      (5/14),   2,2 MiB (  8,3 MiB uitgepakt)
Ophalen: subversion-1.8.10-9.1.x86_64.rpm ..................................................[GEREED (1,8 MiB/s)]
pakket gitk-2.6.6-7.1.x86_64 wordt opgehaald                             (6/14), 217,8 KiB (705,6 KiB uitgepakt)
Ophalen: gitk-2.6.6-7.1.x86_64.rpm .....................................................................[GEREED]
pakket git-web-2.6.6-7.1.x86_64 wordt opgehaald                          (7/14), 165,6 KiB (321,6 KiB uitgepakt)
Ophalen: git-web-2.6.6-7.1.x86_64.rpm ..................................................................[GEREED]
pakket git-gui-2.6.6-7.1.x86_64 wordt opgehaald                          (8/14), 296,7 KiB (  1,3 MiB uitgepakt)
Ophalen: git-gui-2.6.6-7.1.x86_64.rpm ......................................................[GEREED (1,2 MiB/s)]
pakket git-email-2.6.6-7.1.x86_64 wordt opgehaald                        (9/14), 120,3 KiB (112,6 KiB uitgepakt)
Ophalen: git-email-2.6.6-7.1.x86_64.rpm ................................................................[GEREED]
pakket git-cvs-2.6.6-7.1.x86_64 wordt opgehaald                         (10/14), 166,6 KiB (328,0 KiB uitgepakt)
Ophalen: git-cvs-2.6.6-7.1.x86_64.rpm ..................................................................[GEREED]
pakket git-2.6.6-7.1.x86_64 wordt opgehaald                             (11/14),  88,6 KiB (  2,6 KiB uitgepakt)
Ophalen: git-2.6.6-7.1.x86_64.rpm ......................................................................[GEREED]
pakket subversion-perl-1.8.10-9.1.x86_64 wordt opgehaald                (12/14), 863,6 KiB (  4,3 MiB uitgepakt)
Ophalen: subversion-perl-1.8.10-9.1.x86_64.rpm .............................................[GEREED (1,4 MiB/s)]
pakket libsvn_auth_kwallet-1-0-1.8.10-9.1.x86_64 wordt opgehaald        (13/14),  76,9 KiB ( 18,5 KiB uitgepakt)
Ophalen: libsvn_auth_kwallet-1-0-1.8.10-9.1.x86_64.rpm .................................................[GEREED]
pakket git-svn-2.6.6-7.1.x86_64 wordt opgehaald                         (14/14), 513,8 KiB (  1,0 MiB uitgepakt)
Ophalen: git-svn-2.6.6-7.1.x86_64.rpm ......................................................[GEREED (1,3 MiB/s)]
Controleren op bestandsconflicten: .....................................................................[GEREED]
( 1/14) Installeren: cvs-1.12.12-183.1.x86_64 ..........................................................[GEREED]
( 2/14) Installeren: cvsps-2.1-184.2.x86_64 ............................................................[GEREED]
( 3/14) Installeren: libserf-1-1-1.3.8-4.2.x86_64 ......................................................[GEREED]
( 4/14) Installeren: git-core-2.6.6-7.1.x86_64 .........................................................[GEREED]
( 5/14) Installeren: subversion-1.8.10-9.1.x86_64 ......................................................[GEREED]
Aanvullende rpm-uitvoer:
Updating /etc/sysconfig/svnserve...


( 6/14) Installeren: gitk-2.6.6-7.1.x86_64 .............................................................[GEREED]
( 7/14) Installeren: git-web-2.6.6-7.1.x86_64 ..........................................................[GEREED]
( 8/14) Installeren: git-gui-2.6.6-7.1.x86_64 ..........................................................[GEREED]
( 9/14) Installeren: git-email-2.6.6-7.1.x86_64 ........................................................[GEREED]
(10/14) Installeren: git-cvs-2.6.6-7.1.x86_64 ..........................................................[GEREED]
(11/14) Installeren: git-2.6.6-7.1.x86_64 ..............................................................[GEREED]
(12/14) Installeren: subversion-perl-1.8.10-9.1.x86_64 .................................................[GEREED]
(13/14) Installeren: libsvn_auth_kwallet-1-0-1.8.10-9.1.x86_64 .........................................[GEREED]
(14/14) Installeren: git-svn-2.6.6-7.1.x86_64 ..........................................................[GEREED]

Configuratie

Na de geslaagde installatie stel je de GitHub gebruikersgegevens in. Vervang in de volgende twee opdrachten gebruikersnaam en e-mail door uw eigen GitHub gebruikersnaam en bijhorende e-mailadres:

dany@laptop:~> git config --global user.name gebruikersnaam
dany@laptop:~> git config --global user.email e-mail

Een lokale opslagplaats aanmaken

Als lokale opslagplaats wordt een map op uw systeem gebruikt, waarvan de inhoud later naar GitHub wordt verstuurd. Gebruik de volgende opdracht:

dany@laptop:~> git init Mijntest
Initialized empty Git repository in /home/dany/Mijntest/.git/

Mijntest is de map die wordt aangemaakt en init maakt er een GitHub map van. Ga na de pas aangemaakte map met de opdracht:

dany@laptop:~> cd Mijntest/

De opslagplaats beschrijven

We maken een README bestand aan met wat tekst. Het README bestand wordt meestal gebruikt om te beschrijven wat de opslagplaats bevat en wat het doel is van het project. Met uw favoriete teksteditor maak je het README bestand aan:

dany@laptop:~/Mijntest> kwrite README

Met de volgende tekst:

Dit is een git opslagplaats.

Bestanden aan de opslagplaatsindex toevoegen

Dit is een belangrijke stap. Met deze stap maken we een lijst (index) van alles wat op het internet geplaatst moet worden. Dit kunnen tekstbestanden of programma's zijn die je voor de eerste keer in de opslagplaats wilt opslaan of bestaande bestanden met aanpassingen die je wilt updaten.

We hebben reeds een README bestand. We maken een tweede bestand met een eenvoudig C programma aan met de naam voorbeeld.c:

#include
int main()
{
  printf("hello world");
  return 0;
}

We hebben nu dus twee bestanden:

dany@laptop:~/Mijntest> ls
README  voorbeeld.c

Voe deze toe aan de index met de volgende twee opdrachten:

dany@laptop:~/Mijntest> git add README 
dany@laptop:~/Mijntest> git add voorbeeld.c

Merk op dat git add gebruikt wordt om verschillende bestanden of mappen aan de index toe te voegen. De index is eigenlijk een buffer waarin de bestanden die naar de Git opslagplaats gestuurd moeten worden, bewaard worden.

De aanpassingen doorsturen

Als alle bestanden aan de index zijn toegevoegd, kunnen we ze doorsturen. Alle aanpassingen zijn klaar en kunnen naar onze opslagplaats geüpload worden:

dany@laptop:~/Mijntest> git commit -m "Mijn eerste bijdrage"
[master (root-commit) b3fcc07] Mijn eerste bijdrage
 2 files changed, 7 insertions(+)
 create mode 100644 README
 create mode 100644 voorbeeld.c

Met de -m optie stuur je een eenvoudig bericht mee.

Een opslagplaats op GitHub aanmaken

Maak een repository aan op GitHub waarbij de naam overeenkomt met de naam van uw lokale opslagplaats (in ons geval Mijntest). Meld je dus aan op https://github.com en klik + knopje rechts bovenaan op de pagina en start de opdracht New repository. Dit wordt het:
Create GitHub repository

Als de repository is aangemaakt, kunnen we de inhoud van de lokale opslagplaats in de GitHub repository plaatsen. Daarvoor maak je met de volgende opdracht een verbinding met uw GitHub repository, vervang daarbij gebruikersnaam door uw eigen GitHub gebruikersnaam:

dany@laptop:~/Mijntest> git remote add origin https://github.com/gebruikersnaam/Mijntest.git

Publiceren naar de GitHub repository

De laatste stap is het doorsturen van de inhoud in de lokale opslagplaats naar de GitHub repository op het internet met de opdracht:

dany@laptop:~/Mijntest> git push origin master
Username for 'https://github.com': pindanet
Password for 'https://pindanet@github.com': 
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 354 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To https://github.com/pindanet/Mijntest.git
 * [new branch]      master -> master

Dit voegt de inhoud van de Mijntest map (lokale opslagplaats) toe aan GitHub. Als je naar GitHub surft, zie je al je bestanden staan.
GitHub Repository