Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:git [27.04.2022 18:53. ] djangolinux:git [15.01.2023 19:16. ] (aktuell) – [Git Index] django
Zeile 493: Zeile 493:
 </code> </code>
  
 +=== Kürzere Commit-Hashes ===
 +Bei einigen Git Befehlen ist die Angabe des Commit-Hashes wie z.B. ''2be6d73d053d103e850af8e6507f8da8b7333bd7 '' notwendig. Die Verwendung des vollständigen SHA1 Hash-Wertes kann mit unter als sehr umständlich betrachtet werden. Git benötigt nicht unbedingt den vollständigen Hash-wert, sondern kann auch nur mit den ersten Stellen des Hashes, sofern dieser eindeutig ist, arbeiten. Neben der individuellen manuellen Verkürzung des Hashes bietet Git auch die Möglichkeit einer Vereinfachung beim Arbeiten. Als Unterstützung bei der Handhabung für solche eindeutigen, kann ''git log'' auch wie folgt verwendet werden.
 +   $ git log --abbrev-commit
 +
 +Git zeigt somit automatisch eine verkürzte siebenstellige eindeutige Länge an, die wir bei der Angabe der betreffenden Git Kommandos dann statt des vollständigen SHA1 Hashwertes verwenden können.
 +
 +=== kompremmierte verkürzte Git Logs ===
    $ git log --oneline     $ git log --oneline 
 <code>2be6d73 (HEAD -> master, tag: v7.0) Vorerst V7.0 fertig gestellt. <code>2be6d73 (HEAD -> master, tag: v7.0) Vorerst V7.0 fertig gestellt.
Zeile 711: Zeile 718:
 </b></font></font></pre> </b></font></font></pre>
 </html> </html>
 +
 +==== Git Index ====
 +
 +<uml>
 +
 +state "Working Directory / Tree " as workingtree
 +workingtree :
 +workingtree : Lokales Arbeitsverzeichnis
 +workingtree : mit allen Verzeichnissen
 +workingtree : und Dateien - unser lokaler 
 +workingtree : Arbeits- und Bearbeitungs- 
 +workingtree : bereich.
 +workingtree :
 +
 +state "Staging - Index" as index
 +index :
 +index : Zwischenspeicher von Git,
 +index : der zwischen dem Working tree
 +index : und dem Repository steht. 
 +index : Auch bekannt unter dem Namen
 +index : "Staging Area".
 +index :
 +
 +state "Local Repository" as repo
 +repo :
 +repo : Speicher für alle commits,
 +repo : also alle Änderungen mit
 +repo : den zugehörigen commit-Daten,
 +repo : also der vollständigen
 +repo : Versionsgeschichte. 
 +repo : 
 +
 +state "Remote Repository" as gitrepo
 +gitrepo :
 +gitrepo : remote Speicher für unser
 +gitrepo : lokales Repository umd so
 +gitrepo : mit anderen Personen oder
 +gitrepo : auf anderen Geräten das 
 +gitrepo : Repository zu sharen. 
 +gitrepo : 
 +
 +workingtree -right-> index : add
 +index -left-> workingtree : reset
 +index -right-> repo : commit
 +repo  -right-> gitrepo : push
 +gitrepo -left-> repo: fetch
 +gitrepo -left-> repo: pull
 +repo -left-> workingtree : reset[commit]
 +gitrepo -left-> workingtree : pull
 +
 +</uml>
 +
 +Solange wir nicht mit einem **''commit''** die Daten aus Index __nicht__ in unser Repository übertragen, werden alle Änderungen die wir mit einem ''git add'' dem Index hinzufügen und mit ''reset'' wieder entziehen, lediglich im **Index** zwischengespeichert.
 +
 +Fragen wir nun den Status unser Umgebung ab.
 +   $ git status 
 +
 +  On branch main
 +  Your branch is up to date with 'origin/main'.
 +  
 +  nothing to commit, working tree clean
 +
 +Die Ausgabe **//working tree clean//** bedeutet hier nicht, dass der Index "leer" wäre, sondern dass der **''Working Tree''** und der **''Index''** synchron sind, also dass der **''Index''** im gleichen Zustand wie der **''Working Tree''** ist!
 +
 +Was passiert nun beim Aufruf von **''git diff''** wenn **''Working Tree''** und **''Index''** synchron sind? 
 +   $ git diff
 +
 +Ist die Ausgabe "leer" bedeutet dies, dass diese gleich sind, ein Versuch mit einem ''git commit'' fehlschlagen wird, da ja nichts im Zwischenspeicher/Index vorgemerkt siot, was in das **''Repository''** überführt werden könnte. 
 +   $ git commit
 +
 +  On branch main
 +  Your branch is up to date with 'origin/main'.
 +  
 +  nothing to commit, working tree clean
 +
 +Mit der Option ''--staged'' können wir und beim Befehl **''git diff''** den Unterschied zwischen unserem Index (Staging Area) und unserem **''Repository''** ausgeben lassen. Haben wir Änderungen im Index vorgemerkt würde dies den Unterschied zum aktuellen  ''HEAD'' sehen.
 +Im Ausgangszustand, also wenn wir unsere Umgebung mit einem ''git init'' inital angelegt haben, oder nach einem durchgeführten ''git commit'' erzeugt t weder ein ''git diff'' noch ein ''git diff --staged'' eine Ausgabe.
 +
 +
 +
 +==== GitHub ====
 +
 +/* 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 */
 +
 +<code>Quick setup — if you’ve done this kind of thing before
 +or
 +
 +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
 +
 +echo "# ffmuc-offloader_rpb4" >> README.md
 +git init
 +git add README.md
 +git commit -m "first commit"
 +git branch -M main
 +git remote add origin https://github.com/Django-BOfH/ffmuc-offloader_rpb4.git
 +git push -u origin main
 +
 +…or push an existing repository from the command line
 +
 +git remote add origin https://github.com/Django-BOfH/ffmuc-offloader_rpb4.git
 +git branch -M main
 +git push -u origin main
 +
 +…or import code from another repository
 +
 +You can initialize this repository with code from a Subversion, Mercurial, or TFS project.</code>
 +
 +https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
 +
 +/*
 +<code>Stellen Sie sicher, dass die  Parameter-URL auf etwas wie:
 +
 +„https://<Ihr  Github-Benutzername>:<das soeben generierte  Token>@guthub.com/<der Pfad zum Repository, in das Sie verschieben  möchten>.git“ eingestellt ist.
 +
 +
 +In der .git/config Datei im Git Projekt Verzeichnis:
 +
 +url = https://username_bei github:hier_token@github.com/home/Pfad_zum_Git_Projekt/z.B._website/.git  eintragen.
 +
 +(unter Linux).
 +
 +
 +
 +1.Gehen Sie zuhttps://github.com/setting/token(wenn  Sie es vorziehen, durch das Menü zu navigieren, ist das Benutzer ->  Einstellungen -> Entwicklereinstellungen -> Persönliche  Zugriffstoken)
 +
 +2. Klicken Sie auf „Neuen Token generieren“
 +
 +3. Wählen  Sie die Bereiche aus.  Der benötigte Umfang heißt „repo“, also  überprüfen Sie dies unbedingt.  Wenn Sie mit dem Token etwas anderes  machen möchten, können Sie bei Bedarf auch andere Kontrollkästchen  aktivieren, aber nur damit "git push" funktioniert, würde dieser "repo"  -Bereich ausreichen.
 +
 +4. Klicken Sie auf „Token generieren“
 +
 +5. Öffnen Sie nun auf Ihrem Computer in dem Verzeichnis, in dem Sie den Code speichern, die Datei .git/config
 +
 +6. Stellen  Sie sicher, dass die Parameter-URL auf etwas wie  siehe oben .git“ eingestellt ist.  Dh stell sicher, dass
 +
 +
 +1. Das Protokoll ist „https“, nicht „ssh“.  Die PATs funktionieren nicht mit ssh
 +
 +2. Die URL enthält den Benutzernamen, unter dem Sie den Code pushen möchten
 +
 +3. Die URL enthält das soeben generierte Token
 +
 +7. Sobald  Sie Ihre .git/config aktualisiert haben, können Sie „git push“ erneut  ausführen und dieses Mal sollte es funktionieren (bis Github etwas Neues  implementiert, sehr sicher und nicht sehr gut erklärt).
 +
 +
 +Quelle: andrey.mikhalchuk</code>
 +*/
 +
 +
 +
 +   $ git remote add origin https://github.com/Django-BOfH/ffmuc-offloader_rpb4.git
 +   $ git branch -M main
 +   $ git push -u origin main
 +<code>Enumerating objects: 169, done.
 +Counting objects: 100% (169/169), done.
 +Delta compression using up to 8 threads
 +Compressing objects: 100% (155/155), done.
 +Writing objects: 100% (169/169), 41.24 KiB | 1.59 MiB/s, done.
 +Total 169 (delta 25), reused 0 (delta 0)
 +remote: Resolving deltas: 100% (25/25), done.
 +To https://github.com/Django-BOfH/ffmuc-offloader_rpb4.git
 + * [new branch]      main -> main
 +Branch 'main' set up to track remote branch 'main' from 'origin'.</code>
  
  
    
  • linux/git.1651085614.txt.gz
  • Zuletzt geändert: 27.04.2022 18:53.
  • von django