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:50] 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 197: | Zeile 263: | ||
| Siehe auch [[http://git-scm.com/book/en/v2/Getting-Started-Installing-Git|Installing Git]] | 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. | ||