Siehe dieses Youtube Video Eingabeaufforderung
Bevor man mit Git arbeitet, sollte man die Eingabeaufforderung/ Kommandozeile oder Windows Power Shell kennen. Die Eingabeaufforderung ist ein Programm, mit dem man auf Windows und DOS zugreifen kann. Die Windows Power Shell ist ein neueres, ähnliches Programm. Für Mac Os und Linux gibt es adäquate Programme. Diese Progamme haben keine grafische Benutzeroberfläche, stattdessen gibt es eine Text-Eingabeaufforderung. Hiermit kann man Ordner und Dateien aufrufen, Dateien erstellen oder löschen oder sogar Programme installieren. Einige Programme lassen sich nur über die Eingabeaufforderung installieren lassen.
Man kann Package-Manager wie chocolatey oder npm installieren mit denen sich dann weitere und auch mehrere Programme auf einmal installieren lassen. chocolaty ermöglicht beispielsweise die Installation des Flashplayers.
Desweiteren kann man mit der Eingabeaufforderung auch Automatisierungen erstellen. Diese werden in einer Datei gespeichert und führen beim Aufruf der Datei die Befehle aus.
Man öffnet die Eingabeaufforderung, indem man im Suchen-Fenster unten cmd und dann Entereingibt. Auch in VSC kann man oben über das Menü ein Terminal/ Eingabeaufforderung aufrufen.
Man kann über die rechte Maustaste die Darstellung des Fensters ändern (Schrift, Hintergrundfarbe etc.)
In der ersten Zeile erscheint die Windows Version und ein Pfad zu einem Ordner. Standarmäßig C:\Users\Windows
. Hierbei ist Users ein Alias auf den Ordner "Benutzer" und "Windows"
ist in diesem Falle der Name des Rechners.
Man klickt in das Fenster, gibt einen der unten aufgeführten Befehle ein und drückt die Enter Taste.
Befehl | Info | Erklärung |
---|---|---|
dir | directory | zeigt alle Ordner, Unterordner und Dateien an. Der Punkt steht für den aktuellen Ordner. .. 2 Punkte stehen für den übergeordneten Ordner. Die Dateigrößen von Dateien in bytes werden angezeigt. |
cd | change directory cd desktop |
Verzeichnis aufrufen. |
cd .. | parent directory | 2 Punkte verweisen auf das übergeordnete Verzeichnis. Ein Punkt auf das eigene Verzeichnis |
D: | Laufwerk D | Um zu einem Laufwerk zu wechseln gibt man nicht cd ein sondern einfach den Laufwerksbuchstaben und Doppelpunkt |
cls | clear | Löschen der angezeigten Befehle im Fenster |
mkdir | make directory mkdir pillepalle |
Erstellen eines Ordners. |
echo Hallo > test.txt | echo schreiben |
Hier wird der Text Hallo in eine neue Datei namens test.txt geschrieben. |
copy | copy test.txt test2.txt | Kopieren einer Datei test.txt und erstellen einer neuen Datei test2.txt |
explorer . | Explorer öffnen | Öffnet de aktuellen Ordner im Explorer |
wmic logicaldisk get name | Laufwerke anzeigen | Listet alle Laufwerke auf |
code | in VSC öffnen code "D:\web\work\git-lernen" code . |
In VSC öffnen oder man gibt den . ein, um den akutellen Ordner zu öffnen |
chkdsk | check disc | Überprüft das aktuelle Laufwerk auf Fehler. chkdsk/f Repariert gefundene Fehler. chkdsk/r Findet und repariert fehlerhafte Sektoren und stellt lesbare Informationen wieder her. |
tasklist | Zeigt alle laufenden Prozesse an | |
shutdown/s | Fährt das System runter | |
befehl /? | Infos zu Befehlen | Gebe einen Befehl mit einem Fragezeichen ein, um eine Erläuterung des Befehls zu erhalten. |
ipconfig | Ip Adresse | Alles über die Ip Adresse |
tracert | tracert www.google.de | Routenverfolgung. Erfahre mehr über die angezeigten IP-Adressen bei whatsmyipaddress.com |
Return Taste (Enter Taste) |
Weiterblättern, wenn man am Ende des Fensters ist | |
q | Abbrechen |
Erstelle eine Textdatei mit Notepad und speichere sie mit der Endung cmd oder bat ab. Füge dort
Befehle ein. Beim Aufruf werden diese Befehle ausgeführt.
Mehrere Befehle werden in einzelnen Zeilen abgelegt.
Beispielsweise ein Programm öffnen. chrome
Die Kürzel oder Pfade der Programme kann man nachschaue mit rechter Maus.
Über das Programm "Systemumgebungsvariablen bearbeiten" kann man über "Pfad" einen Pfad zu einem Ordner angeben, in dem sich ein Programm mit der Endung exe befindet. Nach einem Neustart kann man über den Namen das Programm starten. siehe Video
Eine Datei in VSC öffnen: code "D:\web\work\git-lernen"
In Visual Studio Code (VSC) steht einem im Fenster "Terminal" eine Eingabeaufforderung zur Verfügung.
Sollte es Probleme geben, mit einer Meldung wie: "...Datei ist nicht digital signiert", bedeutet es, dass das System eine Sicherheitsmaßnahme aktiviert hat, die verhindert, dass unsignierte Scripte ausgeführt werden. Hier muss man die Ausführungsrichtlinie für PowerShell ändern.
Eine Anleitung findest du hier.
Get-ExecutionPolicy
ein Die Ausgabe zeigt die aktuelle Richtlinie z.B. restricted
Set-ExecutionPolicy RemoteSigned
A
Get-ExecutionPolicy
ein. Die Ausgabe sollte nun RemoteSigned
anzeigen. Starte VSC erneut.Git ermöglicht das Sichern verschiedener Versionen von Projekten. Man kann ein Projekt Schritt für Schritt aufbauen und dann später mittels Git die verschiedenen Schritte oder Zustände des Projekts erkunden.
Git ermöglicht die Zusammenarbeit in Teams und außerdem kann man ein Projekt bei Github hochladen und bereitstellen.
Lege dazu einen Account bei git Hub an.
Installiere Git auf dem Rechner.
Nun kann man mit der Eingabeaufforderung git Befehle eingeben. Sie beginnen immer mit git
Es gibt 3 Zustände, in der sich eine Datei befinden kann
Git wird in der Regel über die Eingabeaufforderung gesteuert. Es gibt aber auch Programme mit grafischen Oberflächen.
Siehe von Mario Video über Git und VSC / Video Git mit Kommandozeile
Befehl | Info | Erklärung |
---|---|---|
git --help | Hilfe | Die wichtigsten Befehle werden erklärt. |
git init | Initialisieren | Ein Ordner .git entsteht. Der ist eventuell versteckt. Er darf nicht gelöscht werden. |
git config --global --list | Das ist die globale Konfiguration das macht man einmal und muss es nicht in jedem Verzeichnis machen deswegen global | |
git status | Untracked Files, hier werden in roter Schrift Dateien angezeigt, die noch nicht commited sind. Der Ordner ".git" wird eventuell nicht aufgeführt, wenn versteckte Dateien in den Windowseinstellungen als "nicht angezeigt" eingestellt sind. | |
git diff | git diff --staged git diff --cached |
Ausführlicher als Wenn man wissen will, was sich geändert hat bei staged Dateien gebe ein: |
git add --all | git add . Dateien hinzufügen |
Vor dem Commit müssen die Dateien hinzugefügt werden, die commited werden sollen. Der Punkt steht für den gesamten Ordner. Wenn man einen Ordnernamen angibt, werden alle Dateien in dem Ordner hinzugefügt. Sie befinden sich dann in der staging Area und sind bereit für den commit. Der Commit ist eine gespeicherte Version. |
git restore --staged <file> | git restore --staged meineDatei.html | Eine Datei, die man der Staging Area hinzugefügt hat, wieder daraus entfernen. Beispielsweise git add ' |
git restore <file> | git restore meineDatei.html | Eine Datei wieder in ihren vorigen Zustand zurück setzen. Alle Änderungen nach dem letzten commit gehen verloren. |
git commit -m "my new version" | einstellen Versionsbezeichnung |
Die zuvor mit add hinzugefügten Dateien werden nun als neue Version
eingestellt/ commited. Das -m steht für message danach gibt man eine
Bezeichnung für diese Version in Anführungsstrichen ein. |
git commit | ohne Versionsbezeichnung öffnet sich der Standardeditor um die Bezeichnung einzugeben und zu speichern | |
git commit -am "new version" | Hiermit wird add und commit in einem Schritt ausgeführt. |
|
git commit --amend | Namen des Commit ändern | Wenn man den Namen des letzten Commit ändern will, kann man mit Die Dateien sollten noch nicht gepusht sein. |
git commit --amend --no-edit | dem letzten Commit etwas geändertes hinzufügen | Wenn man eine Änderung dem letzten commit hinzufügen will, ohne einen neuen commit zu erstellen. Speichere die Änderung, füge es hinzu mit Die Dateien sollten noch nicht gepusht sein. |
git reset HEAD~
|
alle Änderungen landen im Arbeitsbereich, nicht im Staging.
|
Den letzten commit rückgängig machen |
git reset --mixed HEAD~ | ||
git reset --soft HEAD~ | alle Änderungen landen im staging | |
git reset --hard HEAD~ | alle Änderungen werden gelöscht | |
git reset HEAD~3 | Die letzten 3 commits rückgängig machen | |
git log | Logbuch | Alles was man gemacht hat wird im logbuch gespeichert. Die Historie bekommt die Nummern/Hashs von allen Versionen. Author und Message der Versionen werden angezeigt. (Head -> main) zeigt an auf welchem branch oder welcher Version man sich befindet. |
git log --oneline | verkürzte Fassung | |
git log -oneline --graph | komplexe Darstellung mit branches | |
git log -n 3
|
die letzten 3 commits | |
git reflog | zeigt alle Änderungen und Befehle an. Zu jedem Befehl gibt es eine Bezeichnung HEAD@{14}, die man in git reset angeben kann | |
git reset HEAD@{14} | Bezeichnungen können bei git reflog kopiert werden | Alle Änderungen die nach diesem Stand gemacht wurden, werden rückgängig gemacht. |
git revert 34534523094 | Die Id durch git log | Eine einzelne Commit dazwischen entfernen. Es geht anschließend der Editor auf, um in einer git-Datei einen Namen zu vergeben. Speichere diesen neuen Namen und schließe die Datei. Es wird dadurch ein neuer Commit am Ende erstellt. Achtung! Es können Konflikte angezeigt werden. |
git rm meineDatei.txt | Dateien aus git entfernen. Sie ist dann nicht mehr versioniert. Will man die Datei auf der Festplatte behalten wählt man: |
|
git checkout 1234567 | Checkout mit einer bestimmten Versionsnummer/Hash. Diese Hashs bekommt man angezeigt
durch |
|
git checkout master | master ist hier der branch | Möchte man wieder auf die letzte Version zurück gehen, gibt man
den Namen des branch ein. z.B.: git checkout master oder man gibt die letzte commit id ein |
Branch | ||
git branch myBranch | Eine neuer Branch / Zweig wird erstellt. Name ohne Leerzeichen angeben. Man befindet sich nicht in dem neuen Branch. | |
git branch -l | alle Branche auflisten, der mit Sternchen * markierte ist der branch, in dem man sich befindet | |
git branch -d myBranch | Branch löschen / delete | |
git checkout -b myBranch | Ein neuer Branch wird erstellt und man wechselt in diesen Branch | |
git checkout myBranch | In einen Branch wechseln | |
git merge myBranch | Wenn man die Versionen aus einem Branch in einen anderen Branch einfügen will, muss man zuerst in den Branch wechseln, in den der andere Branch eingefügt werden soll, dann gibt man den merge-Befehl ein. Konflikt Wenn man in beiden Branches eine Datei an gleicher Stelle unterschiedlich verändert und commited hat und dann |
|
git cherry-pic neuerBranch | Wenn man einen commit versehentlich im Branch neuerBranch angelegt hat und möchte ihn im alterBranch haben, geht man mit checkout in alterBranch führt den cherry-pic Befehl aus. Damit wird der letzte commit kopiert. Dann muß man den commit in neuerBranc löschen. Mit git checkout neuerBranch und dann git reset --hard HEAD~ |
|
Github | ||
siehe Marios Video Github remote Ein lokal erstelltes Projekt als Github Repository zur Verfügung stellen. Erstelle in Github ein neues repository mit new. Vergebe einen Namen. Keine Leerzeichen. Konvention ist Kleinschreibung und Bindestriche. Am besten den gleichen Namen wie dein lokales Projekt. Wähle Create repository Unter Quickset erscheint der Pfad zu diesem neuen Repository, kopiere ihn. Gehe auf deinem Rechner in die Eingabeaufforderung in dein Git Projekt und erstelle mit der kopierten Adresse einen remote |
||
git remote add origin https://... | origin ist ein selbst vergebener Name des remote Die Adresse bekommt man in github |
Hiermit wird der remote Befehl zu github erstellt. origin ist ein frei vergebener Name, den man so lassen kann. Die Adresse hat man in github kopiert wie oben beschrieben. Man kann auch mehrere remotes erstellen, die jeweils einen anderen Namen bekommen sollten. |
git remote | alle remote namen | listet alle remotes auf, die man erstellt hat |
git remote get-url origin | url eines remotes | zeigt die url des remote namens origin an |
git remote show origin | alle Infos ein remote | alle Infos eines remote namens origin anzeigen |
git remote -v | Info alle remotes | alle Infos zu allen remotes |
git remote rename origin pillepalle | umbenennen | Umbenennen von origin in pillepalle |
git remote remove origin | remote entfernen | Löschen des remotes origin |
git push --set-upstream origin master | Upstream origin ist der Name des remote master ist der Name des Branch | Bevor man pusht muss man für einen Branch einen Upstream erstellen, macht man das nicht, wird dieser Befehl angezeigt so dass man ihn kopieren kann. |
git push -u origin | hochladen | Die Dateien werden nach github hochgeladen. Der Pfad zum Github-Projekt wurde zuvor mit remote angegeben |
Eine geänderte Version von Github in das lokale Projekt ziehen. | In Github eine Datei des Projekts mit Edit ändern. Dann Commit changes wählen, vergeben einen Commit-Namen und bestätige mit Commit changes. Nun hat man einen anderen Stand bei Github. Es gibt 2 Möglichkeiten den Stand auf dem lokalen Rechner zu ziehen, fetch , pull |
|
git fetch origin | your branch is behind 'origin/master' by 1 commit | Mit fetch wird der Stand von github geholt aber noch nicht gemerged. Wenn man git status aufruft, erscheint die Meldung, dass man lokal einen Stand zurück liegt. Nun kann man stattdessen pull oder merge ausführen |
git merge origin/master | Beide Befehle müssen ausgeführt werden wenn man git fetch ausführt |
|
git pull | Der Stand von github wird geholt und gemerged | |
git clone http://myUrl | Klon von Github | Wähle das Projekt bei github Erstelle auf dem Rechner ein Verzeichnis. |
Hier geht es darum, dass man zuerst in Github ein Projekt erstellt und dieses dann auf dem lokalen Rechner zieht. Siehe auch dieses Video
Erstelle ein Projekt in einem Ordner. Wähle mit der Eingabeaufforderung den Ordner aus,
aber führe
nicht den git init
Befehl aus.
Gehe nach Github und erzeuge dort ein neues Projekt/repository. Vergebe einen Namen eine Beschreibung. Eventuell eine Lizens z.B. MIT. Erzeuge keine readme Datei.
Nach Klick auf "Creating Repository" erscheint eine Reihe von git-Befehlen, die man der Reihe nach in der lokalen Eingabeaufforderung eingeben kann, in dem Ordner, in dem das Projekt geladen werden soll.
Somit hat man das Projekt erstellt und runtergeladen. Die ersten Befehle erzeugen ein neues git Projekt git init
git add .
Dateien werden dem Stage hinzugefügt
git commit -m "first commit"
Dateien werden untern dem Namen "first commit"
gespeichert/commited
Dann wird ein branch main
erzeugt und ein Remote Pfad erstellt. Mittels push werden die Datein runtergeladen.
Wenn man die Seite im Browser neu läd, sieht man das Projekt, mit allen Dateien.
Wenn man weitere Änderungen vorgenommen hat und möchte diese Änderung als neue Version in Git abspeichern und hochladen benötigt man folgende Befehle:
Mit Github Desktop kann man einen ein vorhandenes Repository hinzufügen.
Ein neues Repository erstellen.
Wähle unter Add / Create new repository , Wähle den übergeordneten Ordner aus, in dem das Repository erstellt werden soll. Sollte es schon einen Ordner mit Dateien geben, vergebe den gleichen Namen wie den Ordnernamen.
Nachdem man alles erstellt hat, kann man es mit Publish nach Github stellen.
Hat man bei Github Änderungen vorgenommen, erscheint der Button fetch und man kann die Dateien mit fetch und pull herunterladen.
In diesem Screenshot wird das Fenster Quellcodeverwaltung von Visual Studio Code angezeigt. Man sieht, wie man dort die beiden Befehle add
und commit
ausführt.
Eine genaue Anleitung findet ihr in Marios Video GIT
Installiere auch das Plugin Git Graph. Damit hast du die Möglichkeit, die einzelnen Commits/ Versionen mit rechter Maustaste zurückzusetzen Es entspricht dem Befehl git reset
. Wähle:
Reset current branch to this Commit wähle im Untermenü Soft keep all Changes but reset head
NPM ist ein Package Manager. Mit dem man Javascript Pakete in ein Projekt integrieren kann. Es muss jedoch auch NodeJS installiert sein mit dem mam Web Apps, Server etc. nutzen kann. Ich verzichte hier auf Erklärungen und verweise auf das Video Tutorial.
Befehl | Erklärung |
---|---|
npm -v | Zeigt die installierte Version von npm an |
npm init | Projekt initialisieren. Es werden Fragen gestellt, wie Name des Projekts,Version,erstes Script, git Repository, keywords, Author, License,Das kann man eingeben oder frei lassen. Anschließend wird alles angezeigt und man muss es noch bestätigen. Eine package.json Datei wird angelegt. |
npm init -y | Projekt initialisieren mit Standardwerten. |
npm config set init-license MIT npm config set init-author-name "Michael Albers" |
Standardwerte ändern |
npm config get init-author | Standarwerte anzeigen lassen |
npm config delete init-author-name | Standardwert löschen |
npm install express | Paket installieren, in diesem Beispiel das Express Paket. Alle abhängigen Pakete werden in den node-modules Ordner gepackt. Außerdem wird eine package-lock.json Datei angelegt, in welcher die Abhängigkeiten aufgeführt sind. Diese Dateien müssen bei der Übergabe eines Projekts nicht mitgeliefert werden, da alles in der package.json aufgeführt ist. |
npm install -D nodemon | Das Paket (hier nodemon) wird als Dev-Dependencies installiert. Das bedeutet es ist nicht Bestandteil deines Endproduktes. nodemon ist eine Art Server welcher die Seite immer wieder neu läd. |
npm update | Alle Pakete werden aktualisiert |
npm update express | Update eines bestimmten Pakets, hier express |
npm remove nodemon | Paket entfernen hier nodemon |
npm install -g nodemon | Paket global installieren |
npm list | Listet alle Pakete deines Projekts auf |
npm list -g | Alle global installierten Pakete werden aufgelistet |
npm install jquery@1.5.1 | Installation mit bestimmter Version. Siehe Versionen aller Pakete semver.npmjs.com |
npm outdated | veraltete Versionen anzeigen |
npm run test | Script ausführen in diesem Beispiel das Script test |