Schulung-Teil6-Erste Schritte mit git: Unterschied zwischen den Versionen

Aus revampedia
(Die Seite wurde neu angelegt: «{{#switch:{{#IfLang:}} |en= == Preface == <pre> If there are still questions open after these instructions, please go to "Views" and then "Discussion" to lea…»)
 
 
(9 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 4: Zeile 4:
 
== Preface ==
 
== Preface ==
  
 +
This training session took place on 03-30-17. First we got to know [https://en.wikipedia.org/wiki/Git git] a little bit and then installed it. Afterwards we installed a project out of git. It won't work yet, as it's still missing some components, but I'm guessing that we'll do that in the next training session in two weeks.<br>
 +
We'll most likely move our test servers that we'll be able to access them from our regular workplaces. That way we can get exersizes to do until the next training session. It is planed that the physical server and virtual machines get static IP addresses, so accessing the machines will change slightly. But first a little repetition on how to access the virtual machine.<br />
  
  
Zeile 10: Zeile 12:
 
</pre>
 
</pre>
  
 +
== Repetition ==
 +
 +
=== Remote start of the server===
 +
 +
First we wish to start our server. For that we use the program "wakeonlan". The general synthax for that is:<br />
 +
 +
wakeonlan -i "broadcast IP" "MAC address"
 +
<br />
 +
In my case it was the command "wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42". My work colleges will have to enter a different MAC address but the remaining synthax stays the same.<br />
 +
<br />
 +
=== Find out the IP address of the server ===
 +
 +
Next we want to find out what IP address our server received from the DHCP server. In my experience the server always took the same IP, but as that isn't garanteed, it's better to check first.<br />
 +
 +
less /var/lib/dhcp/dhcpd.leases
 +
<br />
 +
Here we look for our entry with the help of the MAC ddress, so we can login to the server via SSH. With "q" you can leave less<br />
 +
 +
=== Remote access to server ===
 +
 +
For the remote access we use the program "ssh". For security reasons the user root isn't allowed to login via SSH. For that reason we've created another username on the system when we set it up. To know to what address we need to connect to, we previously checke the entry on the DHCP server.
 +
 +
ssh "username"@"remote computer"
 +
<br />
 +
=== Find out the IP address of the virtual machine ===
 +
 +
Unfortunately I don't know a better way to find out the IP address of the virtual machine so far, so we have go through these steps to get there. As we are on the physical server (Xen-Hypervisor), we can get a list of the virtual machines.
 +
sudo xl list
 +
In this list each machine has it's own ID. We need this number for the next command.
 +
sudo xl console "ID"
 +
<br />
 +
Now we have to enter username and password of the virtual machine and afterwards find out the IP address of it:
 +
  ip a
 +
<br />
 +
It would also be possible to work from here, but the console we get here doesn't give us the full window. So, it's more comforable to open an SSH connection either from the physical server or from the workstation we're on to the virtual machine.<br>
 +
To get back to the server from the virtual machine, you need to press either Ctrl+5 or AltGr+]. If you wish to go directly from the workstation to the virtual machine, leave the server by typing "exit".<br>
 +
<br>
 +
<br />
 +
== Update packages ==
 +
 +
Now that we're back on the virtual machine we wish to update the list of available packages in apt.
 +
user1@vm1:~$ sudo apt update
 +
<br />
 +
If there is a newer version available for an already installed package, you can update it by typing
 +
user1@vm1:~$ sudo apt upgrade
 +
<br />
 +
 +
== Install git ==
 +
 +
We updated our installed packages and have the list up to date. So now we install the program "git"
 +
user1@vm1:~$ sudo apt install git
 +
<br />
 +
The installation shows us that it's dependant on other packages to work properly.
 +
<br />
 +
<pre>
 +
The following packages will be installed:
 +
  git-man liberror-perl patch rsync
 +
</pre>
 +
- "git-man" is the man page of the program git
 +
- "liberr-perl" is some library that has something to do with errors and was created in perl
 +
- "patch" is a program with instructions to change a file. It's counterpart is "diff" and instructions on how to use them, can be found [https://linuxacademy.com/blog/linux/introduction-using-diff-and-patch/ here].
 +
- [https://en.wikipedia.org/wiki/Rsync Rsync] is a package/program for data transfer. We use it in our productive systems to create backups.
 +
<br />
 +
=== Monitor a folder with git ===
 +
 +
As we've installed the program now, we can monitor one or several folders in git. If the folder doesn't exist yet, you can create it by typing
 +
mkdir "my_folder_for_git"
 +
<br />
 +
Next we change to the newly created folder (or an already existing one) by typing
 +
cd "my_folder_for_git"
 +
<br />
 +
To start the monitoring we enter the following command:
 +
git init
 +
<br />
 +
From now on all the files will be monitored.
 +
<br />
 +
 +
== Load Kivitendo through git ==
 +
 +
A page already exists for this in our [http://wiki.revamp-it.ch/index.php?title=Kivitendo_Installationen_mit_git_verwalten Wiki], but I'll list once more how to do it. Our web server (apache2) has the user "www-data" on a debian system and uses the folder /var/www/. This folder belongs to root, so we have to work with the sudo command.<br>
 +
<br />
 +
We want to create a new folder that belongs to the user www-data
 +
user1@vm1:~$ sudo -u www-data mkdir /var/www/git
 +
<br />
 +
Unfortunately we get the message "permission denied". The reason for it is that the folder /var/www/ belongs to root and the user www-data lacks the permission to create the new folder. To learn more about the [http://wiki.revamp-it.ch/index.php?title=CLI-Teil1-Einf%C3%BChrung_ins_Command_Line_Interface File Hierarchy System] I created a page in German on the wiki. It will remain german-only until I know a way to have tables in more than one language. So, there is some additional informatioin there if you're not already an expert for Linux.<br>
 +
As we've failed as www-data we'll create the folder as root:
 +
user1@vm1:~$ sudo mkdir /var/www/git
 +
<br />
 +
Now we change the file ownership and group owner of this new folder by typing
 +
user1@vm1:~$ sudo chown www-data:www-data /var/www/git
 +
<br />
 +
Next we change to the newly created folder
 +
user1@vm1:~$ cd /var/www/git
 +
<br />
 +
And we start to monitor the folder in git
 +
user1@vm1:/var/www/git$ git init
 +
<br />
 +
While we're the user www-data we load a copy of Kivitendo into this folder
 +
sudo -u www-data git clone https://github.com/kivitendo/kivitendo-erp.git
 +
<br />
 +
A new subfolder has been created in our folder /var/www/git/. So, we change to this new folder
 +
user1@vm1:/var/www/git$ cd kivitendo-erp/
 +
<br />
 +
and look at everything in this folder
 +
<pre>
 +
user1@vm1:/var/www/git/kivitendo-erp$ ls -la
 +
insgesamt 112
 +
drwxr-xr-x 19 www-data www-data 4096 Mär 30 14:17 .
 +
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 ..
 +
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 bin
 +
drwxr-xr-x  2 www-data www-data 4096 Mär 30 14:17 config
 +
drwxr-xr-x  6 www-data www-data 4096 Mär 30 14:17 css
 +
lrwxrwxrwx  1 www-data www-data  14 Mär 30 14:17 dispatcher.fcgi -> dispatcher.fpl
 +
-rwxr-xr-x  1 www-data www-data  621 Mär 30 14:17 dispatcher.fpl
 +
-rwxr-xr-x  1 www-data www-data  507 Mär 30 14:17 dispatcher.pl
 +
drwxr-xr-x  7 www-data www-data 4096 Mär 30 14:17 doc
 +
-rw-r--r--  1 www-data www-data 1150 Mär 30 14:17 favicon.ico
 +
drwxr-xr-x  8 www-data www-data 4096 Mär 30 14:17 .git
 +
-rw-r--r--  1 www-data www-data  553 Mär 30 14:17 .gitignore
 +
-rw-r--r--  1 www-data www-data  451 Mär 30 14:17 .htaccess
 +
drwxr-xr-x  6 www-data www-data 4096 Mär 30 14:17 image
 +
-rw-r--r--  1 www-data www-data  369 Mär 30 14:17 index.html
 +
drwxr-xr-x  9 www-data www-data 4096 Mär 30 14:17 js
 +
-rw-r--r--  1 www-data www-data  375 Mär 30 14:17 .jshintrc
 +
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 locale
 +
-rw-r--r--  1 www-data www-data 2236 Mär 30 14:17 .mailmap
 +
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 menus
 +
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 modules
 +
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 scripts
 +
drwxr-xr-x 26 www-data www-data 4096 Mär 30 14:17 SL
 +
drwxr-xr-x  2 www-data www-data 4096 Mär 30 14:17 spool
 +
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 sql
 +
drwxr-xr-x 20 www-data www-data 4096 Mär 30 14:17 t
 +
drwxr-xr-x  5 www-data www-data 4096 Mär 30 14:17 templates
 +
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 users
 +
-rw-r--r--  1 www-data www-data  15 Mär 30 14:17 VERSION
 +
</pre>
 +
<br />
 +
-> The file ".git" (dot at the beginning tells us that it is a hidden file) is necessary when a program/project is monitored by git.<br>
 +
-> In ".gitignore" are files/folders listed that will not be managed by git. Here you can enter personal settings that will not be the same for everyone. With an editor you can add additional folders.
 +
<br />
 +
== More commands when working with git ==
  
 +
Now that we've loaded a program through git we can get to know git a bit more. There are also web sites in the net to learn [https://www.thomas-krenn.com/de/wiki/Git_Grundbefehle git basic commands in German]. Other entries also exist already in our Wiki. They can be found [http://wiki.revamp-it.ch/index.php?title=Git_Versionsverwaltung_-_Einf%C3%BChrung,_Grundlagen_Teil_1 here] and [http://wiki.revamp-it.ch/index.php?title=Git_Versionsverwaltung_-_Einf%C3%BChrung,_Grundlagen_Teil_2 here]<br>
 +
The first command shows us all available branches. As we've only just gotten the program this number is very small and it just has the master branch.
 +
user1@vm1:/var/www/git/kivitendo-erp$ git branch
 +
* master
 +
<br />
 +
This command only works when we are in a folder that is being monitored by git. It we try this in a different folder we get the following error message:
 +
 +
user1@vm1:/var/www/git$ git branch
 +
fatal: Not a git repository (or any of the parent directories): .git
 +
<br />
 +
To see what versions of a project are available in git, we enter the following command:<br>
 +
user1@vm1:/var/www/git/kivitendo-erp$ git tag
 +
<br />
 +
We can start a new branch with the next command:<br>
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout -b produktiv release-3.4.1
 +
<br />
 +
- The new branch is started with the "-b" parameter<br>
 +
- "produktiv" is the name that we chose for the new branch<br>
 +
- "release-3.4.1" is the version of Kivitendo that builds the basis of our new branch.<br>
 +
<br />
 +
As we've created a new branch we now see more with the "git branch" command:<br>
 +
<pre>
 +
user1@vm1:/var/www/git/kivitendo-erp$ git branch
 +
  master
 +
* produktiv
 +
</pre>
 +
<br />
 +
Another command to see the current state is:
 +
user1@vm1:/var/www/git/kivitendo-erp$ git status
 +
Auf Branch produktiv
 +
nichts zu committen, Arbeitsverzeichnis unverändert
 +
<br />
 +
If a new version of a program/project has been released and you wish to install it, you first need to change back to the master branch<br>
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout master
 +
Zu Branch 'master' gewechselt
 +
Ihr Branch ist auf dem selben Stand wie 'origin/master'.
 +
<br />
 +
and you'd get the new version by typing (won't work in my example here as we already have the most current version)
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git pull
 +
<br />
 +
 +
To see what's changed from one release to the next you can type:
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git log
 +
<br />
 +
If you wish to change the branch again you enter the following command
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout produktiv
 +
Zu Branch 'produktiv' gewechselt
 +
<br />
 +
== Closing words ==
 +
Our version of Kivitendo doesn't work yet, as we don't have Postgres installed or configured.<br>
 +
<br />
 +
If you turn of a virtual machine or a server, while you are in an SSH session, you can press "Enter"+~+. to get back to your client. ''You first press the Enter-key, then AltGr+~, next Spacebar and last .''<br />
 +
 +
=== Exercise for next time ===
 +
 +
Kivitendo is just one example of the programs/projects that can be found on git. Other programs that we use here and are available on git are NextCloud or Openki. The Linux-Kernel is also being developed on git.<br>
 +
The exercise for next time is to load another program onto the virtual machine from git. To see what's available you best visit the web site [https://github.com/ github.com]. To get the link to the .git file you best check the README file.
 +
<br />
  
 
|#default=
 
|#default=
Zeile 18: Zeile 220:
 
Diese Schulung hat am 30.03.2017 stattgefunden. Zuerst haben wir [https://de.wikipedia.org/wiki/Git git] installiert und ein wenig kennengelernt und dann noch ein Projekt aus git installiert. Das ist noch nicht funktionsfähig, da noch notwendige Komponenten fehlen, doch das wird wohl voraussichtlich in zwei Wochen folgen.<br>
 
Diese Schulung hat am 30.03.2017 stattgefunden. Zuerst haben wir [https://de.wikipedia.org/wiki/Git git] installiert und ein wenig kennengelernt und dann noch ein Projekt aus git installiert. Das ist noch nicht funktionsfähig, da noch notwendige Komponenten fehlen, doch das wird wohl voraussichtlich in zwei Wochen folgen.<br>
 
Unsere Test-Server werden bei uns wohl bald mal noch verschoben, dass wir auch vom Arbeitsplatz aus auf die Geräte zugreifen können. So können wir in den Schulungen noch Aufgaben bekommen, welche wir dann in der Zeit bis zur nächsten Schulung probieren können. Da geplant ist, dass die Server und virtuellen Maschinen dann statische IP Adressen kriegen wird sich das aufstarten ein wenig ändern. Trotzdem folgt als erstes noch eine Repetition zum aufstarten und einloggen in Server und virtuellen Maschine.<br />
 
Unsere Test-Server werden bei uns wohl bald mal noch verschoben, dass wir auch vom Arbeitsplatz aus auf die Geräte zugreifen können. So können wir in den Schulungen noch Aufgaben bekommen, welche wir dann in der Zeit bis zur nächsten Schulung probieren können. Da geplant ist, dass die Server und virtuellen Maschinen dann statische IP Adressen kriegen wird sich das aufstarten ein wenig ändern. Trotzdem folgt als erstes noch eine Repetition zum aufstarten und einloggen in Server und virtuellen Maschine.<br />
 
+
<br />
 
<pre>
 
<pre>
 
Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr
 
Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr
 
</pre>
 
</pre>
 
 
== Repetition ==
 
== Repetition ==
  
Zeile 30: Zeile 231:
  
 
  wakeonlan -i "broadcast IP" "MAC address"
 
  wakeonlan -i "broadcast IP" "MAC address"
 
+
<br />
 
In meinem Fall war der Befehl "wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42". Für meine Arbeitskollegen ändert sich die MAC-Adresse, doch die restliche Synthax können sie auch nutzen.<br />
 
In meinem Fall war der Befehl "wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42". Für meine Arbeitskollegen ändert sich die MAC-Adresse, doch die restliche Synthax können sie auch nutzen.<br />
 
<br />
 
<br />
Zeile 38: Zeile 239:
  
 
  less /var/lib/dhcp/dhcpd.leases
 
  less /var/lib/dhcp/dhcpd.leases
 
+
<br />
 
Hier suchen wir unseren Eintrag anhand der MAC-Adresse raus, dass wir anschliessend auf unserem Server einloggen können. Über "q" kann man less wieder verlassen.<br />
 
Hier suchen wir unseren Eintrag anhand der MAC-Adresse raus, dass wir anschliessend auf unserem Server einloggen können. Über "q" kann man less wieder verlassen.<br />
  
Zeile 46: Zeile 247:
  
 
  ssh "username"@"remote computer"
 
  ssh "username"@"remote computer"
 
+
<br />
 
=== IP der virtuellen Maschine ausfindig machen ===
 
=== IP der virtuellen Maschine ausfindig machen ===
  
Zeile 53: Zeile 254:
 
In dieser Auflistung ist jede Maschine mit einer ID versehen. Diese Zahl merken wir uns für den nächsten Befehl.
 
In dieser Auflistung ist jede Maschine mit einer ID versehen. Diese Zahl merken wir uns für den nächsten Befehl.
 
  sudo xl console "ID"
 
  sudo xl console "ID"
 +
<br />
 
Jetzt müssen wir unsere Login-Daten der virtuellen Maschine eingeben und anschliessend die IP Adresse der virtuellen Maschine herausfinden:
 
Jetzt müssen wir unsere Login-Daten der virtuellen Maschine eingeben und anschliessend die IP Adresse der virtuellen Maschine herausfinden:
 
   ip a
 
   ip a
 +
<br />
 
Es wäre auch schon möglich von hier aus zu arbeiten, doch man kann dann nicht das gesammte Fenster nutzen, sondern nur einen Teil davon. Somit ist es angenehmer, wenn man jetzt wieder die virtuelle Maschine verlässt und entweder vom Server aus oder vom Computer wo man dran sitzt eine neue Verbindung direkt zur virtuellen Maschine macht.<br>
 
Es wäre auch schon möglich von hier aus zu arbeiten, doch man kann dann nicht das gesammte Fenster nutzen, sondern nur einen Teil davon. Somit ist es angenehmer, wenn man jetzt wieder die virtuelle Maschine verlässt und entweder vom Server aus oder vom Computer wo man dran sitzt eine neue Verbindung direkt zur virtuellen Maschine macht.<br>
 
Um von der virtuellen Maschine aus wieder auf denn Server zu kommen, muss man Ctrl+5 oder AltGr+] drücken. Falls man direkt vom Computer aus auf die virtuelle Maschine will, den Server über "exit" verlassen.<br>
 
Um von der virtuellen Maschine aus wieder auf denn Server zu kommen, muss man Ctrl+5 oder AltGr+] drücken. Falls man direkt vom Computer aus auf die virtuelle Maschine will, den Server über "exit" verlassen.<br>
 
<br>
 
<br>
 +
<br />
 
== Packete auf den neusten Stand bringen ==
 
== Packete auf den neusten Stand bringen ==
  
 
Jetzt wo wir uns auf unserer virtuellen Maschine befinden, wollen wir als erstes mal die Liste der verfügbaren Packete auf den neusten Stand bringen. Dies machen wir über
 
Jetzt wo wir uns auf unserer virtuellen Maschine befinden, wollen wir als erstes mal die Liste der verfügbaren Packete auf den neusten Stand bringen. Dies machen wir über
 
  user1@vm1:~$ sudo apt update
 
  user1@vm1:~$ sudo apt update
 +
<br />
 
Falls zu den bereits installierten Packeten eine neuere Version vorliegt, so wird es dies uns melden und diese Packete können wir über den folgenden Befehl installieren
 
Falls zu den bereits installierten Packeten eine neuere Version vorliegt, so wird es dies uns melden und diese Packete können wir über den folgenden Befehl installieren
 
  user1@vm1:~$ sudo apt upgrade
 
  user1@vm1:~$ sudo apt upgrade
 +
<br />
  
 
== git installieren ==
 
== git installieren ==
Zeile 69: Zeile 275:
 
Wir haben unsere Packete auf den neusten Stand gebracht und verfügen über die aktuelle Version der verfügbaren Packete. Da wir heute git installieren wollen, machen wir dies über
 
Wir haben unsere Packete auf den neusten Stand gebracht und verfügen über die aktuelle Version der verfügbaren Packete. Da wir heute git installieren wollen, machen wir dies über
 
  user1@vm1:~$ sudo apt install git
 
  user1@vm1:~$ sudo apt install git
 +
<br />
 
Bei der Installation zeigt es uns, dass noch weitere Packete benötigt werden, dass es funktioniert.
 
Bei der Installation zeigt es uns, dass noch weitere Packete benötigt werden, dass es funktioniert.
 +
<br />
 
<pre>
 
<pre>
 
Die folgenden zusätzlichen Pakete werden installiert:
 
Die folgenden zusätzlichen Pakete werden installiert:
Zeile 77: Zeile 285:
 
- "liberr-perl" ist eine Bibliothek im Zusammenhang mit Fehlern und wurde in Perl geschrieben
 
- "liberr-perl" ist eine Bibliothek im Zusammenhang mit Fehlern und wurde in Perl geschrieben
 
- Bei "patch" handelt es sich um eine Anleitung für Änderungen einer Datei. Das Gegenstück dazu ist "diff" [https://linuxacademy.com/blog/linux/introduction-using-diff-and-patch/ Hier] findet man noch eine Anleitung auf Englisch wie man diese beiden Programme nutzen kann.
 
- Bei "patch" handelt es sich um eine Anleitung für Änderungen einer Datei. Das Gegenstück dazu ist "diff" [https://linuxacademy.com/blog/linux/introduction-using-diff-and-patch/ Hier] findet man noch eine Anleitung auf Englisch wie man diese beiden Programme nutzen kann.
- rsync = remote sync
+
- Bei [https://de.wikipedia.org/wiki/Rsync Rsync] handelt es sich um Packet/Programm zum Datentransfer. Wird bei uns produktiv genutzt um Backups zu machen
 +
<br />
 +
=== Ordner von git uberwachen lassen ===
  
}}
+
Da wir jetzt git installiert haben können wir einen oder mehrere Ordner von git überwachen lassen. Sofern der Ordner noch nicht besteht, erstellen wir den über
 +
mkdir "mein ordner für git"
 +
<br />
 +
Anschliessend wechseln wir in den neu erstellten Ordner (oder einen bereits bestehenden) durch
 +
cd "mein ordner für git"
 +
<br />
 +
Dass wir die Überwachung nun auch aktivieren geben wir den folgenden Befehl ein:
 +
git init
 +
<br />
 +
Ab jetzt werden Änderungen von Dateien überwacht.
 +
<br />
  
[[Kategorie:Schulungen_/_Workshops]]
+
== Kivitendo über git laden ==
  
-> server werden wohl verschoben und kriegen statische IPs, dass wir schneller starten können (hat wieder 20-30min gedauert bis alle auf VM waren)
+
Es gibt bereits einen Eintrag in unserem [http://wiki.revamp-it.ch/index.php?title=Kivitendo_Installationen_mit_git_verwalten Wiki], doch ich werde trotzdem nochmals auflisten wie man dabei vorgeht. Unser Webserver (apache2) hat unter Debian den Benutzer "www-data" und nutzt den Ordner /var/www/. Da dieser Ordner jedoch root gehört müssen wir mit sudo arbeiten.<br>
 
+
<br />
schulung zu git:
+
Wir wollein einen neuen Ordner direkt mit dem Benutzer www-data erstellen
kivitendo wird über git verwaltet, sowie auch linuxkernel
+
user1@vm1:~$ sudo -u www-data mkdir /var/www/git
 
+
<br />
user1@vm1:~$ sudo apt update
+
Leider erhalten wir die Meldung "permission denied". Der Grund dafür ist, dass der Ordner /var/www/ dem Benutzer root gehört und somit der Benutzer www-data keinen Ordner erstellen darf. Um die [http://wiki.revamp-it.ch/index.php?title=CLI-Teil1-Einf%C3%BChrung_ins_Command_Line_Interface Verzeichnisstruktur] besser kennenzulernen hatte ich bereits einen Wiki-Eintrag erstellt. Man kann also auch dort noch weitere Informationen finden, falls man noch kein Experte für Linux ist.<br>
user1@vm1:~$ sudo apt upgrade (falls nötig)
+
Also erstellen wir diesen Ordner erst mal als Benutzer root:
user1@vm1:~$ sudo apt install git
+
user1@vm1:~$ sudo mkdir /var/www/git
Die folgenden zusätzlichen Pakete werden installiert:
+
<br />
  git-man liberror-perl patch rsync
+
Und wechseln nun den Datei-Inhaber, sowie den Gruppen-Inhaber über
 
+
user1@vm1:~$ sudo chown www-data:www-data /var/www/git
-> git-man = man-page
+
<br />
-> liberr-perl = library errors written in perl
+
Als nächstes Wechseln wir in diesen neu erstellen Ordner
-> patch = anleitung für änderungen von einer datei (gegenstück zu diff)
+
user1@vm1:~$ cd /var/www/git
-> rsync = remote sync
+
<br />
 
+
Wir fangen jetzt an diesen Ordner von git überwachen zu lassen
Anmerkung für git nutzung:
+
user1@vm1:/var/www/git$ git init
mkdir "mein ordner für git"
+
<br />
cd "mein ordner für git"
+
Wir laden uns jetzt, während wir der Benutzer www-data sind, eine Kopie von Kivitendo in diesen Ordner
git init -> git überwacht diesen ordner ab jetzt
+
sudo -u www-data git clone https://github.com/kivitendo/kivitendo-erp.git
 
+
<br />
 
+
In unserem Ordner /var/www/git/ wurde ein neuer Unterordner erstellt. Also wechseln wir mal in diesen neuen Ordner
http://wiki.revamp-it.ch/index.php?title=Kivitendo_Installationen_mit_git_verwalten
+
user1@vm1:/var/www/git$ cd kivitendo-erp/
 
+
<br />
apache2 nutzt www-data user und hat seine sachen unter /var/www/
+
und lassen uns da den gesammten Ordnerinhalt anzeigen
 
+
<pre>
user1@vm1:~$ sudo mkdir -p /var/www/git
 
user1@vm1:~$ cd /var/www/git
 
user1@vm1:/var/www/git$ sudo git clone https://github.com/kivitendo/kivitendo-erp.git
 
user1@vm1:/var/www$ sudo chown -R www-data:www-data kivitendo
 
 
 
 
 
alternativ sudo -u www-data mkdir /var/www/git
 
-> permission denied, da ordner und vorhergehender ordner root gehören -> kopieren von wo ich das geschrieben hatte.
 
also doch über
 
sudo mkdir /var/www/git
 
sudo chown www-data:www-data /var/www/git
 
sudo -u www-data git clone https://github.com/kivitendo/kivitendo-erp.git
 
 
 
user1@vm1:/var/www/git$ cd kivitendo-erp/
 
 
user1@vm1:/var/www/git/kivitendo-erp$ ls -la
 
user1@vm1:/var/www/git/kivitendo-erp$ ls -la
 
insgesamt 112
 
insgesamt 112
Zeile 154: Zeile 360:
 
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 users
 
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 users
 
-rw-r--r--  1 www-data www-data  15 Mär 30 14:17 VERSION
 
-rw-r--r--  1 www-data www-data  15 Mär 30 14:17 VERSION
user1@vm1:/var/www/git/kivitendo-erp$
+
</pre>
-> .git -> nötig, wenn über git verwaltetes projekt gearbeitet wird
+
<br />
-> .gitignore -> hier können individuelle einstellungen gemacht werden, da sie nicht über git verwaltet werden.
+
-> Die Datei ".git" (Punkt am Beginn sagt, dass es eine versteckte Datei ist) ist zwingend notwendig, wenn ein Programm/Projekt über git verwaltet wird.<br>
    -> falls wir weitere ordner nicht über git verwaltet haben wollen diese datei editieren gehen
+
-> In ".gitignore" -> sind Dateien/Ordner eingetragen, welche nicht durch git verwaltet werden. Hier kann man also individuelle Einstellungen machen die nicht für alle gleich sind. Über einen Editor kann man auch weitere Ordner hinzufügen.
 +
<br />
 +
== Weitere Befehle für den Umgang mit git ==
  
user1@vm1:/var/www/git/kivitendo-erp$ git branch
+
Da wir jetzt ein neues Programm über git geladen haben, können wir jetzt git ein wenig besser kennenlernen. Es gibt auch im Netz bereits Seiten um die [https://www.thomas-krenn.com/de/wiki/Git_Grundbefehle git Grundbefehle] kennenzulernen. Auch bei uns im Wiki gibt es schon Einträge zu git. Sie befinden sich [http://wiki.revamp-it.ch/index.php?title=Git_Versionsverwaltung_-_Einf%C3%BChrung,_Grundlagen_Teil_1 hier] und [http://wiki.revamp-it.ch/index.php?title=Git_Versionsverwaltung_-_Einf%C3%BChrung,_Grundlagen_Teil_2 hier]<br>
* master
+
Der erste Befehl zeigt uns was für Zweige (eng. Branches) verfügbar sind. Da wir es erst gerade geholt haben, ist diese Zahl noch sehr klein und zeigt uns nur den master-Zweig an.
-> in welchem Zweig von git befinden wir uns. da neu geladen im master
+
  user1@vm1:/var/www/git/kivitendo-erp$ git branch
  -> funktioniert nur in einem verzeichnis wo wir git haben
+
* master
user1@vm1:/var/www/git$ git branch
+
<br />
fatal: Not a git repository (or any of the parent directories): .git
+
Dieser Befehl funktioniert jedoch nur, wenn wir uns in einem Ordner befinden, welcher von git überwacht wird. Zum zeigen, dass es eine Fehlermeldung produkiert in einem anderen Ordner hier der Versuch dazu:  
  
user1@vm1:/var/www/git$ cd kivitendo-erp/
+
user1@vm1:/var/www/git$ git branch
user1@vm1:/var/www/git/kivitendo-erp$ git tag
+
fatal: Not a git repository (or any of the parent directories): .git
-> listet alle releases auf
+
<br />
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout -b produktiv release-3.4.1
+
Um zu sehen welche Versionen es zu einem bestimmten Projekt gib, kann man dies über den folgenden Befehl anzeigen lassen:<br>
 +
user1@vm1:/var/www/git/kivitendo-erp$ git tag
 +
<br />
 +
Dass wir einen neuen Zweig anfange können müssen wir den nächsten Befehl eingeben:<br>
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout -b produktiv release-3.4.1
 +
<br />
 +
- Der neue Zweig wird über "-b" angefangen<br>
 +
- "produktiv" ist der Name den wir für den neuen Zweig gewählt haben<br>
 +
- "release-3.4.1" ist die Version von Kivitendo, welche wir als Basis für diesen Zweig nehmen wollen.<br>
 +
<br />
 +
Da wir einen neuen Zweig gemacht haben können wir jetzt mit dem "git branch" mehr sehen:<br>
 +
<pre>
 
user1@vm1:/var/www/git/kivitendo-erp$ git branch
 
user1@vm1:/var/www/git/kivitendo-erp$ git branch
 
   master
 
   master
 
* produktiv
 
* produktiv
weiterer befehl zum zeigen was der stand ist:
+
</pre>
user1@vm1:/var/www/git/kivitendo-erp$ git status
+
<br />
Auf Branch produktiv
+
Ein weiterer Befehl zum zeigen was unser aktueller Stand ist, ist der folgende:
nichts zu committen, Arbeitsverzeichnis unverändert
+
user1@vm1:/var/www/git/kivitendo-erp$ git status
 +
Auf Branch produktiv
 +
nichts zu committen, Arbeitsverzeichnis unverändert
 +
<br />
 +
Falls eine neue Version veröffentlicht wurde und man diese installieren möchte, wechselt man erst wieder in den Master-Zweig
 +
falls updates gemacht wurden und man die installieren will<br>
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout master
 +
Zu Branch 'master' gewechselt
 +
Ihr Branch ist auf dem selben Stand wie 'origin/master'.
 +
<br />
 +
und würde dann die neue Version holen. Natürlich kann dies bei mir nichts neues anzeigen, da ja bereits die aktuelle Version erst gerade installiert wurde.
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git pull
 +
<br />
 +
Um sehen zu können, was zuletst an einem Release verändert wurde kann man diesen Befehl benutzen:
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git log
 +
<br />
 +
Will man wieder in einen anderen Zweig wechseln, so macht man dies über
 +
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout produktiv
 +
Zu Branch 'produktiv' gewechselt
 +
<br />
 +
== Schlusswort ==
 +
Unser Kivitendo kann bislang noch nicht laufen, da noch kein Postgres installiert und konfiguriert wurde.<br>
 +
<br />
 +
Wenn man die virtuelle Maschine oder den Server ausschaltet, während man in einer SSH Session ist, so kann man über "Enter"+~+. zum Client zurückkommen. ''Man drückt also nacheinander die Enter-Taste, AltGr+~, Spacebar und zum Schluss noch .''<br />
  
falls updates gemacht wurden und man die installieren will
+
=== Aufgabe fürs nächste Mal ===
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout master
 
Zu Branch 'master' gewechselt
 
Ihr Branch ist auf dem selben Stand wie 'origin/master'.
 
user1@vm1:/var/www/git/kivitendo-erp$
 
  
user1@vm1:/var/www/git/kivitendo-erp$ sudo git pull
+
Kivitendo ist nur ein Beispiel von einem Programm welches über git weiterentwickelt wird. Weitere Programme welche sich bei uns im Einsatz befinden und man über git bezieht sind NextCloud oder Openki. Auch der Linux-Kernel wird über git weiterentwickelt.<br>
 +
Die Aufgabe ist es jetzt weitere Programme von git zu laden. Falls man schauen will, was es alles gibt geht man am besten zu [https://github.com/ github.com]
 +
<br />
  
user1@vm1:/var/www/git/kivitendo-erp$ sudo git log
+
}}
-> sehen was zuletzt gemacht wurde
 
 
 
wieder zu produktiv wechseln über
 
user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout produktiv
 
Zu Branch 'produktiv' gewechselt
 
 
 
-> kivi kann noch nicht laufen, da noch kein postgres installiert ist
 
 
 
gute erklärung zu git auf deutsch:
 
https://www.thomas-krenn.com/de/wiki/Git_Grundbefehle
 
github.com -> bekannte seite für git-sachen
 
auch auf git zu finden: nextcloud oder openki
 
 
 
aufgabe: neuen ordner für git machen und dort die daten von git herunterladen.
 
 
 
bei uns im wiki zwei einträge zu git von hampa
 
  
Enter ~ (space) . -> wenns nach ssh nicht zurück zur konsole geht, kann man so schneller raus
+
[[Kategorie:Schulungen_/_Workshops]],[[Kategorie:Server-Schulung]]

Aktuelle Version vom 24. April 2017, 01:32 Uhr

Vorwort

Diese Schulung hat am 30.03.2017 stattgefunden. Zuerst haben wir git installiert und ein wenig kennengelernt und dann noch ein Projekt aus git installiert. Das ist noch nicht funktionsfähig, da noch notwendige Komponenten fehlen, doch das wird wohl voraussichtlich in zwei Wochen folgen.
Unsere Test-Server werden bei uns wohl bald mal noch verschoben, dass wir auch vom Arbeitsplatz aus auf die Geräte zugreifen können. So können wir in den Schulungen noch Aufgaben bekommen, welche wir dann in der Zeit bis zur nächsten Schulung probieren können. Da geplant ist, dass die Server und virtuellen Maschinen dann statische IP Adressen kriegen wird sich das aufstarten ein wenig ändern. Trotzdem folgt als erstes noch eine Repetition zum aufstarten und einloggen in Server und virtuellen Maschine.

Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr

Repetition

Fernstart des Servers

Zuerst wollen wir unseren Server erstmal einschalten. Dazu nutzen wir das "wakeonlan" Programm. Die allgemeine Formulierung dazu ist:

wakeonlan -i "broadcast IP" "MAC address"


In meinem Fall war der Befehl "wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42". Für meine Arbeitskollegen ändert sich die MAC-Adresse, doch die restliche Synthax können sie auch nutzen.

IP des Servers ausfindig machen

Als nächstes wollen wir herausfinden, welche IP Adresse unser Server vom DHCP-Server bezogen hat. Aus meiner Erfahrung hat mein Server immer die gleiche Adresse bezogen, doch da dies nicht garantiert ist, schaut man besser nach.

less /var/lib/dhcp/dhcpd.leases


Hier suchen wir unseren Eintrag anhand der MAC-Adresse raus, dass wir anschliessend auf unserem Server einloggen können. Über "q" kann man less wieder verlassen.

Fernzugriff auf Server

Um den Fernzugriff zu machen nutzen wir das Programm "ssh". Da aus Sicherheitsgründen nicht als root eingeloggt werden kann per SSH, haben wir noch einen weiteren Benutzer kreiert beim Aufsetzen des Systems. Um die Adresse vom Server herauszufinden haben wir ja vorher den Eintrag im DHCP-Server gesucht.

ssh "username"@"remote computer"


IP der virtuellen Maschine ausfindig machen

Ich kenne aktuell leider keinen besseren Weg um auf die virtuelle Maschine zu kommen und darum muss man diesen, ein wenig umständlichen, Weg nutzen. Da wir ja erst auf dem Server (Xen-Hypervisor) sind, können wir uns die virtuellen Maschinen anzeigen lassen.

sudo xl list

In dieser Auflistung ist jede Maschine mit einer ID versehen. Diese Zahl merken wir uns für den nächsten Befehl.

sudo xl console "ID"


Jetzt müssen wir unsere Login-Daten der virtuellen Maschine eingeben und anschliessend die IP Adresse der virtuellen Maschine herausfinden:

 ip a


Es wäre auch schon möglich von hier aus zu arbeiten, doch man kann dann nicht das gesammte Fenster nutzen, sondern nur einen Teil davon. Somit ist es angenehmer, wenn man jetzt wieder die virtuelle Maschine verlässt und entweder vom Server aus oder vom Computer wo man dran sitzt eine neue Verbindung direkt zur virtuellen Maschine macht.
Um von der virtuellen Maschine aus wieder auf denn Server zu kommen, muss man Ctrl+5 oder AltGr+] drücken. Falls man direkt vom Computer aus auf die virtuelle Maschine will, den Server über "exit" verlassen.


Packete auf den neusten Stand bringen

Jetzt wo wir uns auf unserer virtuellen Maschine befinden, wollen wir als erstes mal die Liste der verfügbaren Packete auf den neusten Stand bringen. Dies machen wir über

user1@vm1:~$ sudo apt update


Falls zu den bereits installierten Packeten eine neuere Version vorliegt, so wird es dies uns melden und diese Packete können wir über den folgenden Befehl installieren

user1@vm1:~$ sudo apt upgrade


git installieren

Wir haben unsere Packete auf den neusten Stand gebracht und verfügen über die aktuelle Version der verfügbaren Packete. Da wir heute git installieren wollen, machen wir dies über

user1@vm1:~$ sudo apt install git


Bei der Installation zeigt es uns, dass noch weitere Packete benötigt werden, dass es funktioniert.

Die folgenden zusätzlichen Pakete werden installiert:
  git-man liberror-perl patch rsync

- Bei "git-man" handelt es sich um die Man-Page von git - "liberr-perl" ist eine Bibliothek im Zusammenhang mit Fehlern und wurde in Perl geschrieben - Bei "patch" handelt es sich um eine Anleitung für Änderungen einer Datei. Das Gegenstück dazu ist "diff" Hier findet man noch eine Anleitung auf Englisch wie man diese beiden Programme nutzen kann. - Bei Rsync handelt es sich um Packet/Programm zum Datentransfer. Wird bei uns produktiv genutzt um Backups zu machen

Ordner von git uberwachen lassen

Da wir jetzt git installiert haben können wir einen oder mehrere Ordner von git überwachen lassen. Sofern der Ordner noch nicht besteht, erstellen wir den über

mkdir "mein ordner für git"


Anschliessend wechseln wir in den neu erstellten Ordner (oder einen bereits bestehenden) durch

cd "mein ordner für git"


Dass wir die Überwachung nun auch aktivieren geben wir den folgenden Befehl ein:

git init


Ab jetzt werden Änderungen von Dateien überwacht.

Kivitendo über git laden

Es gibt bereits einen Eintrag in unserem Wiki, doch ich werde trotzdem nochmals auflisten wie man dabei vorgeht. Unser Webserver (apache2) hat unter Debian den Benutzer "www-data" und nutzt den Ordner /var/www/. Da dieser Ordner jedoch root gehört müssen wir mit sudo arbeiten.

Wir wollein einen neuen Ordner direkt mit dem Benutzer www-data erstellen

user1@vm1:~$ sudo -u www-data mkdir /var/www/git


Leider erhalten wir die Meldung "permission denied". Der Grund dafür ist, dass der Ordner /var/www/ dem Benutzer root gehört und somit der Benutzer www-data keinen Ordner erstellen darf. Um die Verzeichnisstruktur besser kennenzulernen hatte ich bereits einen Wiki-Eintrag erstellt. Man kann also auch dort noch weitere Informationen finden, falls man noch kein Experte für Linux ist.
Also erstellen wir diesen Ordner erst mal als Benutzer root:

user1@vm1:~$ sudo mkdir /var/www/git


Und wechseln nun den Datei-Inhaber, sowie den Gruppen-Inhaber über

user1@vm1:~$ sudo chown www-data:www-data /var/www/git


Als nächstes Wechseln wir in diesen neu erstellen Ordner

user1@vm1:~$ cd /var/www/git


Wir fangen jetzt an diesen Ordner von git überwachen zu lassen

user1@vm1:/var/www/git$ git init


Wir laden uns jetzt, während wir der Benutzer www-data sind, eine Kopie von Kivitendo in diesen Ordner

sudo -u www-data git clone https://github.com/kivitendo/kivitendo-erp.git


In unserem Ordner /var/www/git/ wurde ein neuer Unterordner erstellt. Also wechseln wir mal in diesen neuen Ordner

user1@vm1:/var/www/git$ cd kivitendo-erp/


und lassen uns da den gesammten Ordnerinhalt anzeigen

user1@vm1:/var/www/git/kivitendo-erp$ ls -la
insgesamt 112
drwxr-xr-x 19 www-data www-data 4096 Mär 30 14:17 .
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 ..
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 bin
drwxr-xr-x  2 www-data www-data 4096 Mär 30 14:17 config
drwxr-xr-x  6 www-data www-data 4096 Mär 30 14:17 css
lrwxrwxrwx  1 www-data www-data   14 Mär 30 14:17 dispatcher.fcgi -> dispatcher.fpl
-rwxr-xr-x  1 www-data www-data  621 Mär 30 14:17 dispatcher.fpl
-rwxr-xr-x  1 www-data www-data  507 Mär 30 14:17 dispatcher.pl
drwxr-xr-x  7 www-data www-data 4096 Mär 30 14:17 doc
-rw-r--r--  1 www-data www-data 1150 Mär 30 14:17 favicon.ico
drwxr-xr-x  8 www-data www-data 4096 Mär 30 14:17 .git
-rw-r--r--  1 www-data www-data  553 Mär 30 14:17 .gitignore
-rw-r--r--  1 www-data www-data  451 Mär 30 14:17 .htaccess
drwxr-xr-x  6 www-data www-data 4096 Mär 30 14:17 image
-rw-r--r--  1 www-data www-data  369 Mär 30 14:17 index.html
drwxr-xr-x  9 www-data www-data 4096 Mär 30 14:17 js
-rw-r--r--  1 www-data www-data  375 Mär 30 14:17 .jshintrc
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 locale
-rw-r--r--  1 www-data www-data 2236 Mär 30 14:17 .mailmap
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 menus
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 modules
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 scripts
drwxr-xr-x 26 www-data www-data 4096 Mär 30 14:17 SL
drwxr-xr-x  2 www-data www-data 4096 Mär 30 14:17 spool
drwxr-xr-x  4 www-data www-data 4096 Mär 30 14:17 sql
drwxr-xr-x 20 www-data www-data 4096 Mär 30 14:17 t
drwxr-xr-x  5 www-data www-data 4096 Mär 30 14:17 templates
drwxr-xr-x  3 www-data www-data 4096 Mär 30 14:17 users
-rw-r--r--  1 www-data www-data   15 Mär 30 14:17 VERSION


-> Die Datei ".git" (Punkt am Beginn sagt, dass es eine versteckte Datei ist) ist zwingend notwendig, wenn ein Programm/Projekt über git verwaltet wird.
-> In ".gitignore" -> sind Dateien/Ordner eingetragen, welche nicht durch git verwaltet werden. Hier kann man also individuelle Einstellungen machen die nicht für alle gleich sind. Über einen Editor kann man auch weitere Ordner hinzufügen.

Weitere Befehle für den Umgang mit git

Da wir jetzt ein neues Programm über git geladen haben, können wir jetzt git ein wenig besser kennenlernen. Es gibt auch im Netz bereits Seiten um die git Grundbefehle kennenzulernen. Auch bei uns im Wiki gibt es schon Einträge zu git. Sie befinden sich hier und hier
Der erste Befehl zeigt uns was für Zweige (eng. Branches) verfügbar sind. Da wir es erst gerade geholt haben, ist diese Zahl noch sehr klein und zeigt uns nur den master-Zweig an.

user1@vm1:/var/www/git/kivitendo-erp$ git branch
* master


Dieser Befehl funktioniert jedoch nur, wenn wir uns in einem Ordner befinden, welcher von git überwacht wird. Zum zeigen, dass es eine Fehlermeldung produkiert in einem anderen Ordner hier der Versuch dazu:

user1@vm1:/var/www/git$ git branch
fatal: Not a git repository (or any of the parent directories): .git


Um zu sehen welche Versionen es zu einem bestimmten Projekt gib, kann man dies über den folgenden Befehl anzeigen lassen:

user1@vm1:/var/www/git/kivitendo-erp$ git tag


Dass wir einen neuen Zweig anfange können müssen wir den nächsten Befehl eingeben:

user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout -b produktiv release-3.4.1


- Der neue Zweig wird über "-b" angefangen
- "produktiv" ist der Name den wir für den neuen Zweig gewählt haben
- "release-3.4.1" ist die Version von Kivitendo, welche wir als Basis für diesen Zweig nehmen wollen.

Da wir einen neuen Zweig gemacht haben können wir jetzt mit dem "git branch" mehr sehen:

user1@vm1:/var/www/git/kivitendo-erp$ git branch
  master
* produktiv


Ein weiterer Befehl zum zeigen was unser aktueller Stand ist, ist der folgende:

user1@vm1:/var/www/git/kivitendo-erp$ git status
Auf Branch produktiv
nichts zu committen, Arbeitsverzeichnis unverändert


Falls eine neue Version veröffentlicht wurde und man diese installieren möchte, wechselt man erst wieder in den Master-Zweig falls updates gemacht wurden und man die installieren will

user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout master
Zu Branch 'master' gewechselt
Ihr Branch ist auf dem selben Stand wie 'origin/master'.


und würde dann die neue Version holen. Natürlich kann dies bei mir nichts neues anzeigen, da ja bereits die aktuelle Version erst gerade installiert wurde.

user1@vm1:/var/www/git/kivitendo-erp$ sudo git pull


Um sehen zu können, was zuletst an einem Release verändert wurde kann man diesen Befehl benutzen:

user1@vm1:/var/www/git/kivitendo-erp$ sudo git log


Will man wieder in einen anderen Zweig wechseln, so macht man dies über

user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout produktiv
Zu Branch 'produktiv' gewechselt


Schlusswort

Unser Kivitendo kann bislang noch nicht laufen, da noch kein Postgres installiert und konfiguriert wurde.

Wenn man die virtuelle Maschine oder den Server ausschaltet, während man in einer SSH Session ist, so kann man über "Enter"+~+. zum Client zurückkommen. Man drückt also nacheinander die Enter-Taste, AltGr+~, Spacebar und zum Schluss noch .

Aufgabe fürs nächste Mal

Kivitendo ist nur ein Beispiel von einem Programm welches über git weiterentwickelt wird. Weitere Programme welche sich bei uns im Einsatz befinden und man über git bezieht sind NextCloud oder Openki. Auch der Linux-Kernel wird über git weiterentwickelt.
Die Aufgabe ist es jetzt weitere Programme von git zu laden. Falls man schauen will, was es alles gibt geht man am besten zu github.com
,