Commands (Auswahl)
git help [Befehl]
git init
// open source projekte git clone http://github.com/benutzername/projektname // EIS-Übungsgruppe git clone eis:eis15-groupXX
**\/
Datei[1-9].cpp
Unterordner/*.txt
Unterordner/**/*.txt
(Git auf Änderungen aufmerksam machen)
git status
git add [Dateiname] [Dateiname] ...
git add . // alle Dateien in einem Ordner hinzufügen git add [Verzeichnis]/
git add -u
git add -f [Dateiname]
git reset HEAD [Dateiname] // (ALIAS) kompakte Ansicht (3) - (siehe 4.Einstellungen/Aliase) git unstage [Dateiname]
git checkout -- [Dateiname]
git rm [Dateiname]
git rm --cached [Dateiname] // (ALIAS - siehe 4.Einstellungen/Aliase) git untrack [Dateiname]
git commit -m "Was ich geändert habe" git commit // angegebener Editor öffnet sich und erwartet commit-message. // schließen ohne zu speichern oder etwas zu schreiben bricht den // vorgang ab
git commit -a -m "Was ich geändert habe" git commit -a // angegebener Editor öffnet sich und erwartet commit-message. // schließen ohne zu speichern oder etwas zu schreiben bricht den // vorgang ab
git commit --ammend
git commit -m "commit mit fehlender datei" git add vergesseneDatei.txt git commit --ammend
// sha-1 checksum (kurzversion) sei hier 1234567 git checkout 1234567
git log // die 5. letzten Commits auflisten git log -5 // kompakte Ansicht git log --oneline // kompakte Ansicht (2) git log --oneline --decorate=short // (ALIAS) kompakte Ansicht (3) - (siehe 4.Einstellungen/Aliase) git tree git tree -3
git branch * master meinBranch // zeigt außerdem den jeweils letzten commit an (checksum + message) git branch -v
git branch meinBranch
git checkout meinBranch git checkout master
git checkout -b meinBranch
git branch -d meinBranch
git branch -D meinBranch
git stash
git stash drop
git stash pop
// einchecken, falls ihr noch nicht in main seid git checkout main git merge hotfix // falls es einen Konflikt gibt, muss dieser erst gelöst werden // dieser befehl zeigt an, welche Dateien den Konflikt auslösen // siehe: "Unmerged"-Liste git status // KONFKLIKTLÖSUNG HIER // entweder per Hand (dannach als gelöst markieren mit) git add [Konfkliktdateien] // oder - falls in den Einstellungen gesetzt - durch visuelles tool git mergetool // bei bedarf noch einmal prüfen und den vorigen Schritt wiederholen git status // falls alle Konflikte gelöst sind den merge-commit einfügen git commit -m "merged hotfix-branch" // alten branch löschen, da er (meistens) nicht wieder benötigt wird git branch -d hotfix
... <<<<<<< HEAD Eine einmal geänderte Zeile ======= Eine parallel geänderte Zeile >>>>>>> hotfix ...
__||__ \ / manuelle Konfliktlösung \ / \/
... Eine geänderte Zeile ...
git rebase master hotfix // alternativ git checkout hotfix git rebase master
git rebase --onto master server client
git fetch // alternativ git fetch origin
git checkout origin/master git checkout origin/branchname
git pull // alternativ git pull origin
git push // alternativ git push origin
git checkout --track origin/branchname // ab jetzt ist branchname ein lokaler Branch // alternativ (lokaler Name kann hier geändert werden) git checkout -b branchname origin/branchname // ab jetzt ist branchname ein lokaler Branch // nun kann auch von jedem branch aus fetch, push und pull ausgeführt // werden git fetch origin branchname git pull origin branchname git push origin branchname
git push origin branchname
git push origin :branchname