Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Allgemein] -  Mitschrift Kurs 20210829
#1
Git-Kurs

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
Zitieren Return to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste