Sonntag, 6. Januar 2019

Git und Github verwenden

Damit ich es nicht vergesse, schreibe ich hier schnell mal die passenden Befehle auf, um mit Git und Github zu arbeiten, damit ich meine Projekte unter Gambas nutzen kann.

Das Ganze wird über die Konsole / ein Terminal oder aber auch über das Terminalfenster, welches man unter der Entwicklungsumgebung GAMBAS findet, entsprechend eingegeben. Die eigentlichen Befehle habe ich grün eingefärbt.

Zuerst einmal brauche ich ein passendes Projektverzeichnis, wo sich das entsprechende Programm/Quellcode finden soll.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte$ mkdir Testgit
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte$ ls
Testgit
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte$ cd Testgit/


Dann muss ich Git dieses Verzeichnis mitteilen, dass das nun der richtige Ordner ist.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit$ git init
Leeres Git-Repository in /home/mintnix/Projekte/Testgit/.git/ initialisiert


Nun klone ich mein Projekt von Github auf dieses Verzeichnis.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit$ git clone https://github.com/Mintnix/testrepo.git
Klone nach 'testrepo' ...
remote: Enumerating objects: 36, done.
remote: Total 36 (delta 0), reused 0 (delta 0), pack-reused 36
Entpacke Objekte: 100% (36/36), Fertig.
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit$ ls
testrepo


Wie man sieht, hat es den Ordner testrepo hier rein kopiert.  Wenn man nun in dem Ordner nachschaut, entdeckt man die gleichen Sachen, wie sie auch auf Github so abgelegt sind.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ ls -a
.  ..  .directory  .git  .gitignore  .hidden  .icon.png  LICENSE  .project  README.md  .src  .startup


Jetzt kann ich das geklonte "Programm" mit Gambas öffnen/bearbeiten, indem ich in den entsprechenden Pfad wechsle. Gambas merkt sich das dann für zukünftige Änderungen.

Wenn ich den Code nun geändert habe und möchte das zu Github hochladen, kann ich mich wieder des Terminal bedienen. Wichtig sind natürlich noch ein paar Einstellungen, die ich vorher tätigen musste.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git commit -m "Eine Änderung vorgenommen."

*** Bitte geben Sie an, wer Sie sind.

Führen Sie

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

aus, um das als Ihre standardmäßige Identität zu setzen.
Lassen Sie die Option "--global" weg, um die Identität nur
für dieses Repository zu setzen.

fatal: Konnte die E-Mail-Adresse nicht automatisch erkennen ('mintnix@mintnix-X470-AORUS-GAMING-5-WIFI.(none)' erhalten)


Dann kamen noch ein paar Meldungen, dass ich da nix angegeben habe.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git commit -m "Eine Änderung vorgenommen."
Auf Branch master
Ihr Branch ist auf demselben Stand wie 'origin/master'.

Änderungen, die nicht zum Commit vorgemerkt sind:
    geändert:       .src/FMain.class
    geändert:       .src/FMain.form

keine Änderungen zum Commit vorgemerkt


Also erst noch die zwei geänderten Dateien angeben.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git add .src/FMain.class
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git add .src/FMain.form
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git commit -m "Eine Änderung vorgenommen."
[master fcfd0b7] Eine Änderung vorgenommen.
 2 files changed, 13 insertions(+), 2 deletions(-)


Die "Mitteilung" bzw. das Paket was an Github gehen soll wurde nun geschnürt und wird mit dem folgenden Befehl auf den Master-Zweig hochgeladen.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git push origin master
Username for 'https://github.com': Mintnix
Password for 'https://Mintnix@github.com':
Zähle Objekte: 5, Fertig.
Delta compression using up to 16 threads.
Komprimiere Objekte: 100% (5/5), Fertig.
Schreibe Objekte: 100% (5/5), 620 bytes | 620.00 KiB/s, Fertig.
Total 5 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/Mintnix/testrepo.git
   eba7107..fcfd0b7  master -> master


Damit neue Funktionen oder Änderungen des Programms nicht direkt einfließen, muss ich einen "Branch" anlegen und diesen auf Github laden. Ich kann dann die Änderungen zwischen Master und dem Branch entsprechend auf Github anschauen und ggf. einfließen / ändern lassen öder löschen.
Der Branch wird lokal erstellt und beim Upload automatisch auf Github erzeugt.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git checkout -b beta
M    .icon.png
Zu neuem Branch 'beta' gewechselt
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git checkout
add-license-1          FETCH_HEAD             master                 origin/add-license-1   origin/master
beta                   HEAD                   ORIG_HEAD              origin/HEAD           
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git checkout master
M    .icon.png
Zu Branch 'master' gewechselt
Ihr Branch ist auf demselben Stand wie 'origin/master'.
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git checkout beta
M    .icon.png
Zu Branch 'beta' gewechselt


Dann kann ich den Quellcode unter Gambas wieder verändern und entsprechend dann über den "Commit" Befehl versandfertig machen.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git add .icon.png .src/
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git add *
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git commit -m "der nächste Test"
[beta bfbcbcf] der nächste Test
 2 files changed, 3 insertions(+), 3 deletions(-)
 rewrite .icon.png (99%)


Danach noch den Branch hochladen.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git push origin beta
Username for 'https://github.com': Mintnix
Password for 'https://Mintnix@github.com':
Zähle Objekte: 5, Fertig.
Delta compression using up to 16 threads.
Komprimiere Objekte: 100% (5/5), Fertig.
Schreibe Objekte: 100% (5/5), 10.90 KiB | 10.90 MiB/s, Fertig.
Total 5 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote:
remote: Create a pull request for 'beta' on GitHub by visiting:
remote:      https://github.com/Mintnix/testrepo/pull/new/beta
remote:
To https://github.com/Mintnix/testrepo.git
 * [new branch]      beta -> beta


Wenn ich auf den aktuellen Stand des Github - Repos möchte, muss ich die folgenden Befehle ausführen.

mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git fetch origin
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Entpacke Objekte: 100% (1/1), Fertig.
Von https://github.com/Mintnix/testrepo
   fcfd0b7..d5736e6  master     -> origin/master
mintnix@mintnix-X470-AORUS-GAMING-5-WIFI:~/Projekte/Testgit/testrepo$ git reset --hard origin/master
HEAD ist jetzt bei d5736e6 Merge pull request #2 from Mintnix/beta


Alle lokalen Änderungen werden dabei überschrieben.

Es fehlen noch ein paar wichtige Grundlagen wie das Zusammenführen / Vergleichen usw.
Dazu später vielleicht mehr.

Keine Kommentare:

Kommentar veröffentlichen

Vielen Dank für Ihren Kommentar. Die Veröffentlichung erfolgt umgehend nach meiner Prüfung. Ich bitte um etwas Geduld. MfG Mintnix