From a417c357ad12a4550da14a515a17308a931a66f4 Mon Sep 17 00:00:00 2001 From: teldra Date: Mon, 14 Jun 2021 12:39:14 +0200 Subject: [PATCH] git add explanations --- README.md | 14 ++++++++------ git/clone.md | 15 +++++++++++++++ git/fork.md | 11 +++++++++++ git/pr.md | 6 ++++++ git/push.md | 11 +++++++++++ git/repo.md | 38 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 git/clone.md create mode 100644 git/fork.md create mode 100644 git/pr.md create mode 100644 git/push.md create mode 100644 git/repo.md diff --git a/README.md b/README.md index c4dcfcd..4d4332e 100644 --- a/README.md +++ b/README.md @@ -35,19 +35,21 @@ Nun muss ich das noch in meinen Account auf dem Server hochladen und von da aus ## Begriffe (todo) -- clone: Eine lokale Kopie eines repos. -- fork: Eine entfernte Kopie eines repos. -- branch: eine Abspaltung vom vorherigen Arbeitszweig +- [repository (repo)](git/repo.md): Ein Container wo alles zum Projekt gehoerende drin ist. Kann lokal und remote sein. +- [fork](git/fork.md): (M)Ein fork ist (M)Eine Kopie des originalen Repositorys. (idr ein clone vorgang auf dem Server.) +- [clone](git/clone.md): Ist der Vorgang, ein repo zu kopieren. (idr benutzt um ein repo auf den eigenen Pc zu kopieren) +- [pushen](git/push.md): das hochladen eines branches zum repo, von dem geklont wurde. +- [pull-request (pr)](git/pr.md): Das Anbieten von Aenderungen am Material. +- branch: Ein Arbeitszweig in einem repo. Ein Arbeitszweig ist der Name der Versionsgeschichte der Dateien im repo. - merge: Das Zusammenfuegen der commits von zwei Arbeitszweigen. - commit: Zusammenschluss von Aenderungen unter einer Beschreibung. -- pushen: das hochladen eines branches zum repo, von dem geklont wurde. -- pull-request (pr): Das Anbieten von Aenderungen am Material. -- repository (repo): Ein Container wo alles zum Projekt gehoerende drin ist. Kann lokal und remote sein. ## Erste Schritte Das erste, was Du jetzt tun kannst ist, dieses repo zu forken. Als Hinweis: Ganz rechts oben sollte "Fork" stehen. +Damit wird eine Kopie dieses Repositorys in deinem Account angelegt. Deine Kopie wird bei Aenderungen in diesem Original nicht geupdated, das muss manuell passieren. Dazu spaeter mehr. + ![Screenshot 1][sc1] [sc1]: https://schlomp.space/Bunteshaus/spielwiese/raw/branch/main/media/sc1.png diff --git a/git/clone.md b/git/clone.md new file mode 100644 index 0000000..292b47b --- /dev/null +++ b/git/clone.md @@ -0,0 +1,15 @@ +# clone + +Das bezeichnet allgemein den Vorgang des kopierens bei git. + +Wen ich ein repo zb. bei github forke, passiert da intern ein cloning. + +Wenn ich meinen fork eines repos auf meinem Rechner haben will, clone ich den. + +Ich kann auch das original repo direkt clonen (das erschwert aber +Mitarbeit am Projekt. Hab da aber keine wirkliche Idee, warum man das machen sollte) + +`git clone https://schlomp.space/teldra/spielwiese` wuerde ich ausfuehren, +was dazu fuehrt, das ein neuer Ordner, im aktuellen Ordner, existiert, mit dem Namen des repos, +also "spielwiese". Damit haette ich meinen fork der spielwiese auf meinem Rechner. + diff --git a/git/fork.md b/git/fork.md new file mode 100644 index 0000000..eea8159 --- /dev/null +++ b/git/fork.md @@ -0,0 +1,11 @@ +# Fork + +Ein fork ist eine Abspaltung vom originalen repo. +Ich kann entweder meine eigenen oder oeffentliche repos von anderen Leuten forken. + +Ich kann so einen fork vornehmen, weil ich eine komplett eigene Vision des originalen +Projektes entwickeln will aber auch um mit dem originalen Projekt zusammen zu arbeiten. + +Praktisch bedeutet das eigentlich erstmal "nur", das eine Kopie der aktuellen Version des zu +forkenden repos im eigenen Account angelegt wird. Damit habe ich das entsprechende repo +als eigenes repo in meinem Account. diff --git a/git/pr.md b/git/pr.md new file mode 100644 index 0000000..9b651d8 --- /dev/null +++ b/git/pr.md @@ -0,0 +1,6 @@ +# pull reqeust + +Ein pull request oder auch pull-request oder pr ist ein Vorschlag einer Aenderung an ein repo. + +Wenn ich an einem Projekt mitarbeiten will, habe ich ja einen fork mit Aenderungen. +Dann mache ich einen pull-request, um so die Aenderung dem Originalprojekt vorzuschlagen. diff --git a/git/push.md b/git/push.md new file mode 100644 index 0000000..b22ad8e --- /dev/null +++ b/git/push.md @@ -0,0 +1,11 @@ +# push + +Mit pushen bezeichnet man das hochladen von Aenderungen. +Es kann ueberall wo schreibrechte vorhanden sind und +die Historys aka logs der Dateien passen, hingepusht werden. + +In der Regel pusht man aber nur zum eigenen repo (was ja auch ein fork sein kann). + +`git push` pusht den aktuellen branch auf die quelle des clones. + +pushen braucht es nicht bei lokalen repos. \ No newline at end of file diff --git a/git/repo.md b/git/repo.md new file mode 100644 index 0000000..068e852 --- /dev/null +++ b/git/repo.md @@ -0,0 +1,38 @@ +# Repository + +## Zwei Arten +Ein repo ist die Sammlung aller Projektdateien und deren Aenderungsgeschichten. +Es gibt davon zwei Arten: lokale und entfernte (remote). + +### lokale repos +Ein lokales repo ist erstmal nur ein Ordner auf dem eigenen Rechner der unter der +Verwaltung von git steht. Wenn der Ordner `.git` (gilt als versteckt, durch den +Punkt am Anfang bei Linux) vorhanden ist, verwaltet git den Ordner in dem `.git` +liegt. + +Das der Ordner von git verwaltet wird, kann zwei Ursachen haben. Entweder ist es +ein clone von einem remote repo oder er wurde manuell unter die Obhut von git +gestellt. + +Will ich einen Ordner zu einem lokalen git repo machen, zb. meine Rezeptesammlung, +wechsel ich in den Ordner mit der Dateisammlung und schreib `git init`. +Nun ist der Ordner unter der "kontrolle" von git. Jetzt sollte git bekannt gemacht +werden, welche Dateien zu dem "Rezeptesammlungs-repo" gehoeren. Dazu spaeter mehr. +Meistens mache ich ein lokales repo, wenn ich weiss, das ich Dateien nicht auf +mehreren Computern brauche. Oder mit anderen zusammenarbeite. + +### remote repos +Ein remote repo ist, sehr kurz gesagt, ein spezieller Ordner, von dem gecloned +oder geforked werden kann. + +Ein remote repo lege ich an, wenn ich mit mehreren zusammenarbeiten will. +`git init --bare` in einem leeren Ordner und dieser ist bereit, gecloned oder geforked +zu werden. + +Das ist das, was github, gitlab oder schlomp.space machen, wenn man ein neues Repo anlegt. + +Man kann das auch auf dem eigenen Rechner machen um dann in einen anderen Ordner (in dem man +dann arbeitet) auf dem selben Rechner zu clonen. Oder sonstwas zu tun. Ich wuesste +nicht was. Ich wollt nur sagen: "Alles was man macht, wenn man mit Servern interagiert, +kann auch nur auf dem eigenen Rechner passieren". Das ist voll flexibel, daher wieder alles +Einzelfallabhaengig. \ No newline at end of file