Git

Ekkart Kleinod  • 

Remote-Branches updaten

Gelöschte Branches werden bei pull und fetch nicht übernommen (gelöscht). Dafür muss das Flag prune gesetzt sein:

$ git fetch -p

Löschen von Remote-Branches

Erst prüfen, ob der Branch bereits gelöscht und noch nicht übernommen wurde.

$ git fetch -p

Dann:

$ git push <remote_name> --delete <branch_name>

also z.B.

$ git push origin --delete feature/fxmlparts

Branching-Modell

  • stable-mainline-Modell neuer Versuch, der den master ziemlich aktuell hält
  • (Git-Branching-Modell das führt wohl zu Problemen und der master-Zweig ist nur ab und an aktuell, werde ich nach und nach aufgeben)

Branch anlegen

$ git checkout -b <branch>

Branch wechseln

$ git checkout <branch>

Branch in aktuell ausgecheckten Branch mergen (kein Fast Forward)

$ git merge --no-ff <branch>

Branch löschen

$ git branch -d <branch>

Branches auflisten (lokal, dann remote)

$ git branch
$ git branch --remote

Tag erstellen

$ git tag -a <tag>

Repository von einem Server auf einen anderen kopieren

Und das Ganze mit Aussuchen, welche branches und tags übernommen werden. Ich gehe davon aus, dass das Repo vorher und nachher mit origin bezeichnet werden soll.

Schritte übernommen von https://developer.atlassian.com/blog/2016/01/totw-copying-a-full-git-repo/

  1. alles eingecheckt haben, lieber doppelt prüfen, pushen, sicher ist sicher
  2. Liste aller branches anzeigen lassen

     $ git branch -a
    
  3. alle branches auschecken, die ins neue Repository übernommen werden sollen

     $ git checkout <branch>
    
  4. tags holen

     $ git fetch --tags
    
  5. nicht benötigte tags löschen

     $ git tag -d <tag>
    
  6. prüfen, ob lokal alles ok ist und übernommen werden kann

     $ git tag
     $ git branch -a
    
  7. Link zum origin-Repository löschen

     $ git remote rm origin
    
  8. Neues Repository als origin verlinken

     $ git remote add origin <repo-url>
    
  9. Alles in Repo pushen

     $ git push origin --all
     $ git push --tags
    
  10. evtl. branches wieder mit Repo-branches verlinken

    $ git branch --set-upstream-to=origin/<branch> <branch>
    
  11. fertig