Benutzer-Werkzeuge

Webseiten-Werkzeuge


git

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
git [2018/11/10 22:12]
root [Branch]
git [2022/02/07 21:50] (aktuell)
root [pull]
Zeile 51: Zeile 51:
       * der Head-Pointer existiert nur einmal pro git-Projekt und verweist immer auf das aktuelle (gewählte, muss nicht das letzte sein) commit im aktuellen Branch       * der Head-Pointer existiert nur einmal pro git-Projekt und verweist immer auf das aktuelle (gewählte, muss nicht das letzte sein) commit im aktuellen Branch
           * der Inhalt des Working Directory und der Commit auf den der Head-Pointer verweist stimmen immer überein           * der Inhalt des Working Directory und der Commit auf den der Head-Pointer verweist stimmen immer überein
 +
 +
 +===== Remote =====
 +
 +  * Remote-Repositories sind Repositories in die hochgeladen werden kann
 +      * sie sind eine "Kopie" vom lokalen Branch
 +      * sie müssen nicht alle Branches enthalten die auch lokal vorhanden sind 
 +  * Remote-References sind Pointer auf bestimmte Objekte im Remote-Repository
 +      * Branches, Tags usw.
 +      * sie können aufgelistet werden mit remote show 
 +
 +
 +
 +  * Remote-Tracking-Branches sind Pointer die auf den Commit Remote zeigen an dem das letzte Mal mit dem jeweiligen Remote-Branch kommuniziert wurde (fetch, pull, push)
 +      * Remote-Tracking-Branches haben die Form:
 +<code>
 +<Remote>/<Branch>
 +</code>
 +      * Remote steht dabei für den Namen des Remote-Repository (git remote show)
 +      * Branch ist der Name des Branches
 +  * man kann für ein Repository auch mehrere Remote-Tracking-Branches haben
 +      * macht man ein pull gegen eines und dies hat einen älteren Stand als man selbst (weil das zweite Remote-Repository einen neueren Stand hat) wird nur der Remote-Tracking-Pointer für das mit dem älteren Stand auf den neuesten Commit den es hat gesetzt - ansonsten passiert nichts (es wird nicht automatisch upgedated, man bekommt auch keine Daten -> da man eh neuere hat)
 +  * push ist einfach -> git push <Remote-Name>
 +  * neues Repository pushen (welches noch nicht Remote vorhanden ist): git push <Remote> <Repository-Name>
 +      * soll das Repository remote unter einem anderen Namen erscheinen: git push <Remote> <Lokaler Name>:<Remote-Name>
 +
 +
 + 
 +
 +
  
  
Zeile 256: Zeile 286:
  
   * Remote ist das Kürzel des Repositories von dem heruntergeladen wird   * Remote ist das Kürzel des Repositories von dem heruntergeladen wird
 +
 +
 +  * Die Option "--rebase" holt alle Änderungen von Remote, macht aber statt merge, ein rebase
 +      * das heißt die Änderungen von Remote werden nicht nach den lokalen Commits hinzugefügt, sondern die Remote-Änderungen werden erst eingespielt und dann alle lokalen Änderungen oben drauf angewendet 
 +  
 +
  
  
Zeile 459: Zeile 495:
  
   *    * 
 +
 +
 +===== Rebase =====
 +
 +  * Ändert die Git-History
 +
 +  * Wenn sich remote etwas geändert hat, kann der Remote-Stand untergehoben werden (aktueller, noch nicht gepushter Commit wird gestashed, die Änderung aus einem anderen Branch (aktueller Stand) eingespielt und die gestashten Änderungen als letzter Commit oben drauf gesetzt)
 +  * noch nicht gepushte Commits können nachträglich bearbeitet werden
 +      * zusammengeführt werden (squash)
 +      * Änderungen vorgenommen werden
 +
 +==== Squash ====
 +
 +  * Zusammenführen mehrerer (ungepushter) Commits zu einem
 +
 +<code>
 +git rebase -i <Basis>
 +</code>
 +
 +Basis:
 +
 +  * meint alle Commits nach dem als Basis angegeben Commit stehen als Edit zur Verfügung
 +  * HEAD~[Anzahl Commits zurück] -> nimm den Commit x Commit zurück als Basis
 +  * <Branch> benutze den Commit an dem sich der aktuelle Branch vom angegebenen Branch getrennt hat (aka. den Base-Commit des aktuellen Branches)
 +  * <SHA1-Sum of Commit> benutze den Commit mit der angegeben SHA1-Summe (siehe git log) als Basis
 +
 +  * Im sich öffnenden Editor alle Edits die mit dem letzten (oberster Eintrag) zusammengeführt werden sollen mit dem Keyword squash versehen (anstatt von pick)
 +  * Editor mit schreiben beenden
 +
 +
 +
  
  
git.1541884324.txt.gz · Zuletzt geändert: 2018/11/10 22:12 von root