Git-Kurs
Git
Git konfigurieren auf der Konsole:
mit
das aktuelle Arbeitsverzeichnis anzeigen lassen.
Ein neues Repository im aktuellen Verzeichnis erstellen:
Damit wird ein versteckter Ordner .git erzeugt.
Prüfen, in welchem Zustand die Dateien sind:
Zeigt z.B. welche Dateien geändert wurden und vieles mehr.
In der Staging Area werden Commits angelegt (Commits sind quasi kleine Versionsbunker).
Eine Datei oder einen Ordner der Staging Area hinzufügen:
Eine mit add zugefügte Datei aus der Staging Area entfernen:
Das Hinzufügen wird quasi rückgängig gemacht.
Eine mit add hinzugefügte Datei kann weiterhin bearbeitet werden.
Im Status wird gezeigt, dass die Datei in der Staging Aarea ist, aber geändert wurde (**add** wieder ausführen oder **restore**, um Änderungen zu verwerfen)
Um Datei oder Ordner in ein Repository zu bringen:
Die Option -m muss von einer Erklärung zum Commit-Inhalt, meist sind es Änderungen, gefolgt ausgeführt werden.
Wenn git commit ohne Option aufgerufen wird, dann öffnet sich eine Datei, in die man dann den gewünschten Text oben als kurzer Titel und dann als Langtext schreiben kann.
Kurze Änderungsmitteilungen werden über die Option -m gefolgt von "Nachrichtentext" in das Repository übernommen.
Änderung im Commit bzw. im Repository anzeigen lassen (Commit-Historie):
Das ist die normale Ausgabe.
Zeigt mehr Änderungen in den Einzelheiten, also sehr ausführlich.
Eher verkürzte Darstellung der Änderungen in einer Zeile.
Commits abändern, weil doch noch nicht richtig (immer nur lokal verwenden, wenn es sein muss).
Der letzte Commit wird demnach überschrieben. Bei Remote-Repositories ist das nicht gut.
Wie arbeitet ".gitignore"?
Es wird eine Datei mit dem Namen ".gitignore" angelegt, in der z.B. ganze Pfade oder eben auch nur Dateien eingetragen werden, die vom Commit ausgenommen werden sollen. Das könnn z.B. auch Dateien sein, in denen Zugangsparameter für Datenbanken enthalten sind oder andere sensible Daten.
Es können auch Datei-Extensions wie *.txt genutzt werden.
Man kann die Datei .gitignore selber schreiben. Aber man kann auch auf vorgefertige Dateien auf GitHub zugreifen: .gitignore
Diese Ignore-Dateien sind themenspezifisch vorhanden. Könnte später mal interessant sein.
Alle Änderungen au der Staging Aarea herausnehmen (das Gegenteil von add - unstaging):
das betrifft alle Dateien
betrifft nur die angegebene Datei
Wenn man den reset-Befehl mit der 7-stelligen ID des Commits ausführt, wird das ganze Commit zurückgesetzt.
Alle Änderungen in der Datei Zeile für Zeile anzeigen lassen:
GitHub
In GitHub wurde aus master nun main, wenn es um den Hauptzweig geht.
Das ist dann wichtig, wenn ein Repository konfiguriert wird.
Remote-Repositories clonen:
Das gilt auch für eigene Projekte, wenn das lokale git nicht mehr zuständig ist, sondern alles auf github liegt.
Zeigt an, welche remote Repositories getrackt werden.
Bei git status wird angezeigt branch master und origin/master. Der erste Master ist der lokale, der zweite Master (oder main) ist der Master vom Clone!
Prüfen, welche Branches vorhanden sind:
(zeigt an, welchen origin/master er trackt
Herunterladen von Commits und Branches von einem remote Repository:
Wenn der Clone weiter ist, da mit fetch die Neuerungen geholt wurden, wird mit dem lokalen Master zusammengeführt:
Wenn ich alleine an dem Projekt arbeiten, benötige ich die obigen Möglichkeiten nicht (nur push zum Hochladen).
GitHub für eigene Projekte
Es muss ein Account auf GitHub vorhanden sein.
Das Repository muss einen Namen haben: orbitjopii
Um das lokale Repository auf GitHub zu bringen muss es heißen:
Um dann die Daten aus dem lokalen Repository in das remote Repository zu bekommen, muss es heßen:
Push muss auch später genutzt werden.
Änderungen zu GitHub übertragen:
Prüfen, ob die Änderung im origin/master angekommen ist.
Auch hier kann man prüfen, ob master und origin/master gleich sind.
Mitschrift Shellscript von Bryan Jenks wegen Cronjob, der Shell ausführt und Git/GitHub aktualisiert
How to git push using gitHub token on the command line:
Neuer Versuch am 29.08.2021 um 10:48 Uhr
…or push an existing repository from the command line:
Alle Anweisungen, wenn ein neues Repository nackt erstellt wurde.
Quick setup — if you’ve done this kind of thing before
or
https://github.com/Janiekmulder/orbit2.git
Get started by creating a new file or uploading an existing file. We recommend every repository include a README, LICENSE, and .gitignore.
…or create a new repository on the command line
…or push an existing repository from the command line
Git
Git konfigurieren auf der Konsole:
Code:
git config --global user.name "Jopii"
git config --global user.email "info@jopii.de"
git config --global core.editor "nano"
mit
Code:
pwd
das aktuelle Arbeitsverzeichnis anzeigen lassen.
Ein neues Repository im aktuellen Verzeichnis erstellen:
Code:
git init
Damit wird ein versteckter Ordner .git erzeugt.
Prüfen, in welchem Zustand die Dateien sind:
Code:
git status
Zeigt z.B. welche Dateien geändert wurden und vieles mehr.
In der Staging Area werden Commits angelegt (Commits sind quasi kleine Versionsbunker).
Eine Datei oder einen Ordner der Staging Area hinzufügen:
Code:
git add <file>
git add <folder>
git add . (mit dem Punkt wird alles hinzugefügt, was da ist)
Eine mit add zugefügte Datei aus der Staging Area entfernen:
Code:
git rm --cached <file>
Das Hinzufügen wird quasi rückgängig gemacht.
Eine mit add hinzugefügte Datei kann weiterhin bearbeitet werden.
Code:
git status
Im Status wird gezeigt, dass die Datei in der Staging Aarea ist, aber geändert wurde (**add** wieder ausführen oder **restore**, um Änderungen zu verwerfen)
Um Datei oder Ordner in ein Repository zu bringen:
Code:
git commit -m <message>
Die Option -m muss von einer Erklärung zum Commit-Inhalt, meist sind es Änderungen, gefolgt ausgeführt werden.
Wenn git commit ohne Option aufgerufen wird, dann öffnet sich eine Datei, in die man dann den gewünschten Text oben als kurzer Titel und dann als Langtext schreiben kann.
Kurze Änderungsmitteilungen werden über die Option -m gefolgt von "Nachrichtentext" in das Repository übernommen.
Änderung im Commit bzw. im Repository anzeigen lassen (Commit-Historie):
Code:
git log
Das ist die normale Ausgabe.
Code:
git log -p
Zeigt mehr Änderungen in den Einzelheiten, also sehr ausführlich.
Code:
git log --online
Eher verkürzte Darstellung der Änderungen in einer Zeile.
Commits abändern, weil doch noch nicht richtig (immer nur lokal verwenden, wenn es sein muss).
Code:
git commit --amend
Der letzte Commit wird demnach überschrieben. Bei Remote-Repositories ist das nicht gut.
Wie arbeitet ".gitignore"?
Es wird eine Datei mit dem Namen ".gitignore" angelegt, in der z.B. ganze Pfade oder eben auch nur Dateien eingetragen werden, die vom Commit ausgenommen werden sollen. Das könnn z.B. auch Dateien sein, in denen Zugangsparameter für Datenbanken enthalten sind oder andere sensible Daten.
Es können auch Datei-Extensions wie *.txt genutzt werden.
Man kann die Datei .gitignore selber schreiben. Aber man kann auch auf vorgefertige Dateien auf GitHub zugreifen: .gitignore
Diese Ignore-Dateien sind themenspezifisch vorhanden. Könnte später mal interessant sein.
Alle Änderungen au der Staging Aarea herausnehmen (das Gegenteil von add - unstaging):
Code:
git reset
das betrifft alle Dateien
Code:
git reset <filename>
betrifft nur die angegebene Datei
Wenn man den reset-Befehl mit der 7-stelligen ID des Commits ausführt, wird das ganze Commit zurückgesetzt.
Alle Änderungen in der Datei Zeile für Zeile anzeigen lassen:
Code:
git blame <files>
git blame --color-lines <filename>
GitHub
In GitHub wurde aus master nun main, wenn es um den Hauptzweig geht.
Das ist dann wichtig, wenn ein Repository konfiguriert wird.
Remote-Repositories clonen:
Code:
git clone <url>
Das gilt auch für eigene Projekte, wenn das lokale git nicht mehr zuständig ist, sondern alles auf github liegt.
Code:
git remote -v
Zeigt an, welche remote Repositories getrackt werden.
Bei git status wird angezeigt branch master und origin/master. Der erste Master ist der lokale, der zweite Master (oder main) ist der Master vom Clone!
Prüfen, welche Branches vorhanden sind:
Code:
git branch
git branch -v
git branch -vv
(zeigt an, welchen origin/master er trackt
Herunterladen von Commits und Branches von einem remote Repository:
Code:
git fetch
Wenn der Clone weiter ist, da mit fetch die Neuerungen geholt wurden, wird mit dem lokalen Master zusammengeführt:
Code:
git merge origin/master
Wenn ich alleine an dem Projekt arbeiten, benötige ich die obigen Möglichkeiten nicht (nur push zum Hochladen).
GitHub für eigene Projekte
Es muss ein Account auf GitHub vorhanden sein.
Das Repository muss einen Namen haben: orbitjopii
Um das lokale Repository auf GitHub zu bringen muss es heißen:
Code:
git remote add origin https:/...../orbitjopii.git
Um dann die Daten aus dem lokalen Repository in das remote Repository zu bekommen, muss es heßen:
Code:
git push -u origin master bzw. main
Push muss auch später genutzt werden.
Änderungen zu GitHub übertragen:
Code:
git add ...
Code:
git commit -m message
Code:
git log --oneline --branches --remotes --graph
Code:
git push
Code:
git branch -vv
Prüfen, ob die Änderung im origin/master angekommen ist.
Code:
git log --oneline --branches --remotes --graph
Auch hier kann man prüfen, ob master und origin/master gleich sind.
Code:
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit$ git pull origin
Username for 'https://github.com': xxx
Password for 'https://Janiekmulder@github.com':
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Entpacke Objekte: 100% (3/3), 858 Bytes | 858.00 KiB/s, fertig.
Von https://github.com/Janiekmulder/kleinerorbit
0f8763f..192422c main -> origin/main
Merge made by the 'recursive' strategy.
README.md | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 README.md
Code:
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit$ git branch -vv
* main 7c007ff [origin/main: 2 voraus] Merge branch 'main' of https://github.com/Janiekmulder/kleinerorbit into main
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit$ ls -al
insgesamt 24
drwxrwxr-x 3 xxx xxx 4096 Aug 28 20:59 .
drwxrwxr-x 6 xxx xxx 4096 Aug 28 20:29 ..
drwxrwxr-x 8 xxx xxx 4096 Aug 28 21:01 .git
-rw-rw-r-- 1 xxx xxx 38 Aug 28 18:09 .gitignore
-rw-rw-r-- 1 xxx xxx 491 Aug 28 20:56 index.html
-rw-rw-r-- 1 xxx xxx 169 Aug 28 20:59 README.md
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit$ git push origin
Username for 'https://github.com': xxx
Password for 'https://xxxx@github.com':
Objekte aufzählen: 9, fertig.
Zähle Objekte: 100% (8/8), fertig.
Delta-Kompression verwendet bis zu 16 Threads.
Komprimiere Objekte: 100% (5/5), fertig.
Schreibe Objekte: 100% (5/5), 897 Bytes | 897.00 KiB/s, fertig.
Gesamt 5 (Delta 1), Wiederverwendet 0 (Delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/Janiekmulder/kleinerorbit.git
192422c..7c007ff main -> main
Mitschrift Shellscript von Bryan Jenks wegen Cronjob, der Shell ausführt und Git/GitHub aktualisiert
Code:
ZK_PATH="Pfad zum Vault"
cd "$ZK_PATH"
git pull
CHANGES_EXISTS="$(git status --porcelain | wc -l)"
if [ "$CHANGES_EXISTS" -eq @ ]; then
exit @
fi
git pull
git add .
git commit -q -m "Last Sync: $(date +'%Y.%m-%d %H:%M:$X')"
git push -q
How to git push using gitHub token on the command line:
Code:
git push https://<GITHUB_ACCESS_TOKEN>@github.com/<GITHUB_USERNAME>/<REPOSITORY_NAME>.git
Code:
git push https://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@github.com/Janiekmulder/orbit2.git
Neuer Versuch am 29.08.2021 um 10:48 Uhr
…or push an existing repository from the command line:
Code:
git remote add origin https://github.com/Janiekmulder/orbit2.git
git branch -M main
git push -u origin main
Alle Anweisungen, wenn ein neues Repository nackt erstellt wurde.
Quick setup — if you’ve done this kind of thing before
or
https://github.com/Janiekmulder/orbit2.git
Get started by creating a new file or uploading an existing file. We recommend every repository include a README, LICENSE, and .gitignore.
…or create a new repository on the command line
Code:
echo "# orbit2" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/Janiekmulder/orbit2.git
git push -u origin main
…or push an existing repository from the command line
Code:
git remote add origin https://github.com/Janiekmulder/orbit2.git
git branch -M main
git push -u origin main
Code:
git push https://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@github.com/Janiekmulder/orbitjopii.git