Anleitung: Code klonen, pushen & diskutieren

Git-Server: git.numexp.org · ← Start

1) Repos finden & ZIP-Download

Öffne git.numexp.org, wähle ein Repository und klicke oben rechts auf Download → ZIP. Entpacken, fertig.

2) Git über HTTPS: Clone & Pull

  1. Repo-URL (HTTPS) aus Forgejo kopieren, z. B.:
    https://git.numexp.org/<user>/<repo>.git
  2. Im Terminal:
    git clone https://git.numexp.org/<user>/<repo>.git
    cd <repo>
    # Änderungen vom Server holen
    git pull
    # (optional) Tags & Releases
    git fetch --tags
    # (optional) Submodule initialisieren
    git submodule update --init --recursive

Tipp (macOS): Zugangsdaten merken lassen: git config --global credential.helper osxkeychain

3) Neues Repo anlegen & per HTTPS pushen

  1. In Forgejo: New Repository anlegen (privat/öffentlich nach Wunsch).
  2. Personal Access Token erstellen:
    Profil → SettingsApplicationsGenerate Token (Scope: repository). Token kopieren.
  3. Im lokalen Projektordner:
    # falls noch kein Git-Repo:
    git init
    git add -A
    git commit -m "Initial"
    
    # Standardbranch
    git branch -M main
    
    # Remote setzen (Forgejo-URL einsetzen)
    git remote add origin https://git.numexp.org/<user>/<repo>.git
    
    # Erster Push (Benutzername: dein Forgejo-User, Passwort: der Token)
    git push -u origin main

4) Änderungen pushen (Updates)

git add -A
git commit -m "Update"
git push origin main

Falls rejected (fetch first) kommt:

git pull --rebase origin main
git push origin main

5) Diskutieren: Issues als Forum

Diskussionen laufen über Issues:

  • Zentral: Forum-Repo – Themen auflisten oder neu anlegen: Alle Themen Neues Thema
  • Projektbezogen: Im jeweiligen Projekt-Repo auf Issues klicken → New issue.

Tipps für gute Issues:

  • Kurzer Titel & Kontextlink (z. B. auf die Projektseite).
  • Schritte zum Reproduzieren, erwartetes vs. tatsächliches Verhalten.
  • Codeblöcke mit ```language```, Anhänge/Plots willkommen.
  • Labels setzen (z. B. Fragen, Bug, Deep-Ritz).

Auf unseren Projektseiten gibt es Buttons „Diskutieren“, die ein vorbefülltes Issue öffnen.

6) Troubleshooting (kurz)

  • 401/403 bei HTTPS-Push: Personal Access Token erzeugen und als Passwort nutzen.
  • Host key changed (SSH): Einträge für den Host in ~/.ssh/known_hosts entfernen.
  • rejected (fetch first): git pull --rebase origin main und erneut pushen.
  • Submodule fehlen: git submodule update --init --recursive.