Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
developer:github [2015/02/25 16:49] hofer [Aktuelle git Version installieren] |
developer:github [2019/08/13 13:48] (aktuell) |
||
---|---|---|---|
Zeile 83: | Zeile 83: | ||
git branch -D mein-feature-branch | git branch -D mein-feature-branch | ||
</code> | </code> | ||
+ | |||
+ | Soll ein neuer lokaler Branch für alle zur Verfügung stehen, kann dieser mit folgendem Befehl auf Github gepusht werden | ||
+ | <code> | ||
+ | git push origin mein-feature-branch | ||
+ | </code> | ||
+ | |||
+ | Damit danach ein status/pull/push korrekt funktioniert muss noch folgender Befehl ausgeführt werden | ||
+ | <code> | ||
+ | git branch --set-upstream-to=origin/mein-feature-branch mein-feature-branch | ||
+ | </code> | ||
+ | |||
===== git checkout (-b) nameDesBranches ===== | ===== git checkout (-b) nameDesBranches ===== | ||
Zeile 146: | Zeile 157: | ||
Vom hash reichen also auch die ersten 7 Stellen aus. | Vom hash reichen also auch die ersten 7 Stellen aus. | ||
+ | ===== Working Copy zurücksetzen ===== | ||
+ | Wenn bereits lokale Commits vorhanden sind die verworfen werden sollen kann der aktuelle stand des Remote repositorys geholt werden mit: | ||
+ | <code> | ||
+ | Auf Branch ci | ||
+ | Ihr Branch ist vor 'origin/ci' um 30 Commits. | ||
+ | (benutzen Sie "git push", um lokale Commits zu publizieren) | ||
+ | nichts zu committen, Arbeitsverzeichnis unverändert | ||
+ | </code> | ||
+ | Diese können mit folgenden Befehl verworfen werden: | ||
+ | <code> | ||
+ | git reset --hard origin/ci | ||
+ | </code> | ||
+ | wobei ci der name des Remote Branch ist. | ||
+ | |||
+ | ===== Branch Merge ===== | ||
+ | Wenn die Entwicklung in einem eigenen Branch stattfindet können die Änderungen vom Master in den Branch übernommen werden damit der Branch wieder am aktuellen Stand ist.\\ | ||
+ | 1. Schritt: Master aktualisieren | ||
+ | <code> | ||
+ | git checkout master | ||
+ | git pull | ||
+ | </code> | ||
+ | 2. Schritt: Branch aktualisieren | ||
+ | <code> | ||
+ | git checkout ci | ||
+ | git pull | ||
+ | </code> | ||
+ | 3. Schritt: Änderungen vom Master in den Branch mergen | ||
+ | (Man muss sich im Branch befinden) | ||
+ | <code> | ||
+ | git merge master | ||
+ | </code> | ||
+ | |||
+ | Wenn es zu Konflikten kommt müssen diese aufgelöst werden. | ||
+ | Mit 'git status' bekommt man eine Übersicht über den aktuellen Stand. | ||
+ | \\ | ||
+ | Soll bei einem Konflikt die Version des Branches übernommen werden kann das mit folgendem Befehl gemacht werden: | ||
+ | <code> | ||
+ | git checkout --ours datei.php | ||
+ | </code> | ||
+ | Soll stattdessen die Version aus dem Master übernommen werden: | ||
+ | <code> | ||
+ | git checkout --theirs datei.php | ||
+ | </code> | ||
+ | Anschließend wird die korrigierte Datei hinzugefügt: | ||
+ | <code> | ||
+ | git add datei.php | ||
+ | </code> | ||
+ | Wenn alle Konflikte behoben sind werden die Änderungen commited: | ||
+ | <code> | ||
+ | git commit | ||
+ | </code> | ||
+ | Und nach dem testen gepusht: | ||
+ | <code> | ||
+ | git push | ||
+ | </code> | ||
===== Andere interessante Befehle ===== | ===== Andere interessante Befehle ===== | ||
Zeile 195: | Zeile 261: | ||
rm -r git-X.Y.Z | rm -r git-X.Y.Z | ||
</code> | </code> | ||
+ | |||
+ | Siehe auch [[http://git-scm.com/book/en/v2/Getting-Started-Installing-Git|Installing Git]] | ||
+ | |||
+ | ===== git url alias ===== | ||
+ | |||
+ | Um zum Beispiel https URLs auf ssh URLs umzuschreiben kann man in ''~/.gitconfig'' folgenden Eintrag machen: | ||
+ | |||
+ | <code> | ||
+ | [url "git://git@github.com:"] | ||
+ | insteadOf = https://github.com/ | ||
+ | </code> | ||
+ | |||
+ | ''<nowiki>https://github.com/</nowiki>'' wird jetzt immer durch ''<nowiki>git://git@github.com:</nowiki>'' ersetzt. | ||
+ | |||
+ | Damit dieses Alias bei ''git submodule'' greift, müssen vorher in ''.git/config'' die submodule gelöscht werden. Beispiel: | ||
+ | |||
+ | <code> | ||
+ | [submodule "submodules/tablesorter"] | ||
+ | url = git@github.com:christianbach/tablesorter.git | ||
+ | </code> | ||
+ | |||
+ | Diesen Eintrag entfernen. Den Ordner samt submodule (sicherheitshalber) löschen. Und dann | ||
+ | |||
+ | <code> | ||
+ | git submodule init | ||
+ | git submodule update | ||
+ | </code> | ||
+ | |||
+ | ''.git/config'' kontrollieren, hier sollten jetzt die ssh URLs eingetragen sein. |