Benutzer-Werkzeuge

Webseiten-Werkzeuge


developer:github

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
developer:github [2015/02/03 11:17]
hofer [Branch auf Commandline anzeigen]
developer:github [2019/08/13 13:48] (aktuell)
Zeile 31: Zeile 31:
  
 Damit man mit den lokalen Änderungen nicht durcheinander,​ kommt sollte vorher alles lokale **commited** werden. Damit man mit den lokalen Änderungen nicht durcheinander,​ kommt sollte vorher alles lokale **commited** werden.
 +
 +Falls bereits lokale Änderungen im Master vorhanden sind wird automatisch ein Merge Commit erzeugt. Um das zu verhindern kann <​code>​git pull --rebase</​code>​ verwendet werden.
  
 ===== Alternative zu merge commit: git rebase ===== ===== Alternative zu merge commit: git rebase =====
Zeile 79: Zeile 81:
  
 <​code>​ <​code>​
-git branch -mein-feature-branch+git branch -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 144: 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 150: Zeile 218:
 git rm index.php</​code>​ git rm index.php</​code>​
  
-=== Branch auf Commandline anzeigen ===+===== Branch auf Commandline anzeigen ​=====
 Um den aktuellen Branch direkt im Prompt auf der Commandline anzuzeigen kann die Variable %%$(__git_ps1)%% in der Datei ~/.bashrc gesetzt werden: Um den aktuellen Branch direkt im Prompt auf der Commandline anzuzeigen kann die Variable %%$(__git_ps1)%% in der Datei ~/.bashrc gesetzt werden:
 <​code>​ <​code>​
Zeile 175: Zeile 243:
  
 Die Grafiken in der [[http://​git-scm.com/​book/​en/​v2/​Git-Branching-Basic-Branching-and-Merging|git doku]] sagen mehr als 1000 Worte. Und [[https://​guides.github.com/​introduction/​flow/​index.html|der Guide]] schaut auch übersichtlich aus. Die Grafiken in der [[http://​git-scm.com/​book/​en/​v2/​Git-Branching-Basic-Branching-and-Merging|git doku]] sagen mehr als 1000 Worte. Und [[https://​guides.github.com/​introduction/​flow/​index.html|der Guide]] schaut auch übersichtlich aus.
 +
 +===== Aktuelle git Version installieren =====
 +
 +Für debian gibt es nur relativ alte git Versionen (max. 1.9 über backport). Aktuell sind sie aber bei 2.3.0. Die Version muss man selbst kompilieren. Und zwar so:
 +
 +<​code>​
 +sudo apt-get install autoconf libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
 +sudo apt-get remove git
 +wget https://​www.kernel.org/​pub/​software/​scm/​git/​git-X.Y.Z.tar.gz
 +tar -zxf git-X.Y.Z.tar.gz
 +cd git-X.Y.Z
 +make configure
 +./configure --prefix=/​usr
 +make all doc info
 +sudo make install install-doc install-html install-info
 +cd ..
 +rm -r git-X.Y.Z
 +</​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.
/var/www/wiki/data/attic/developer/github.1422958630.txt.gz · Zuletzt geändert: 2019/08/13 13:49 (Externe Bearbeitung)