Initialer Commit

This commit is contained in:
christian 2026-04-26 19:38:42 +02:00
commit b6fe9d4bc2
8 changed files with 248 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
*.log
.env
node_modules/

BIN
Data/logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

1
README.md Normal file
View file

@ -0,0 +1 @@
# git-toolbox

15
git-branch-new.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/bash
# Erstellt einen neuen Branch und wechselt zu diesem
if [ -z "$1" ]; then
echo "❌ Fehler: Bitte gib einen Namen für den neuen Zweig an."
echo "Nutzung: git-branch-new [name]"
exit 1
fi
BRANCH_NAME=$1
# Neuen Branch erstellen und wechseln
git checkout -b "$BRANCH_NAME"
echo "✅ Zweig '$BRANCH_NAME' wurde erstellt und aktiviert."

65
git-init-here.sh Executable file
View file

@ -0,0 +1,65 @@
#!/bin/bash
# 1. Aktuelles Verzeichnis und Name ermitteln
CURRENT_DIR=$(pwd)
PROJECT_NAME=$(basename "$CURRENT_DIR")
echo "--- Initialisiere Git-Projekt in: $CURRENT_DIR ---"
# 2. Git initialisieren, falls noch nicht geschehen
if [ -d ".git" ]; then
echo "Info: Hier existiert bereits ein Git-Repository. Fahre mit Konfiguration fort..."
else
git init
echo "Git-Repository wurde initialisiert."
fi
# 3. Dateien nur erstellen, wenn sie NICHT existieren
if [ ! -f "README.md" ]; then
echo "# $PROJECT_NAME" > README.md
echo "Check: README.md wurde neu erstellt."
else
echo "Check: Bestehende README.md gefunden wird beibehalten."
fi
if [ ! -f ".gitignore" ]; then
cat <<EOF > .gitignore
*.log
.env
node_modules/
.DS_Store
EOF
echo "Check: .gitignore wurde neu erstellt."
else
echo "Check: Bestehende .gitignore gefunden wird beibehalten."
fi
# 4. Erster lokaler Commit (nur wenn Änderungen da sind)
git add .
if git diff-index --quiet HEAD --; then
echo "Info: Keine neuen Änderungen zum Committen."
else
git commit -m "Initialer Commit oder Update durch git-init"
git branch -M main
fi
# 5. Remote URL abfragen
echo "------------------------------------------------"
echo "Damit der Push funktioniert, wird eine Remote-URL benötigt."
read -p "Remote URL (Enter zum Überspringen): " remote_url
if [ -n "$remote_url" ]; then
# Sicherstellen, dass kein alter 'origin' stört
git remote remove origin 2>/dev/null
git remote add origin "$remote_url"
echo "Remote 'origin' wurde auf $remote_url gesetzt."
# 6. Erster Push
echo "Führe Push auf 'main' aus..."
git push -u origin main
else
echo "Keine URL angegeben. Das Repo bleibt lokal."
fi
echo "------------------------------------------------"
echo "--- Fertig! Alles sicher in $PROJECT_NAME ---"

39
git-switch.sh Executable file
View file

@ -0,0 +1,39 @@
#!/bin/bash
# --- Git-Toolbox: Hybrider Zweig-Navigator ---
# 1. Zweige einlesen
branches=($(git branch --format='%(refname:short)'))
current=$(git rev-parse --abbrev-ref HEAD)
# 2. Check: Wurde das Skript mit dem Argument --gui aufgerufen?
if [[ "$1" == "--gui" ]]; then
# --- GUI MODUS (Zenity) ---
# Wir erstellen eine Liste für Zenity, wobei der aktuelle Branch markiert ist
CHOICE=$(zenity --list \
--title="Zweig wechseln" \
--column="Zweige" \
"${branches[@]}" \
--width=300 --height=400)
if [ -n "$CHOICE" ]; then
git checkout "$CHOICE"
zenity --info --text="Gewechselt zu $CHOICE" --timeout=2
fi
else
# --- TERMINAL MODUS (Klassisch) ---
echo "--- Verfügbare Zweige ---"
for i in "${!branches[@]}"; do
if [[ "${branches[$i]}" == "$current" ]]; then
echo " [$i] ${branches[$i]} (AKTUELL)"
else
echo " [$i] ${branches[$i]}"
fi
done
echo "--------------------------"
read -p "Nummer eingeben: " choice
if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -lt "${#branches[@]}" ]; then
git checkout "${branches[$choice]}"
else
echo "Ungültige Wahl."
fi
fi

36
git-toolbox.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
# --- Git-Toolbox Dashboard v1.1.0 ---
while true; do
# 1. Hauptmenü mit Zenity
CHOICE=$(zenity --list \
--title="Git-Toolbox Dashboard" \
--column="Aktion" --column="Beschreibung" \
"Update (git-up)" "Änderungen committen und pushen" \
"Branch Switch" "Zwischen Zweigen wechseln" \
"New Branch" "Einen neuen Zweig erstellen" \
"Init Project" "Neues Repo hier initialisieren" \
"Beenden" "Programm verlassen" \
--width=450 --height=350)
# 2. Logik basierend auf der Auswahl
case $CHOICE in
"Update (git-up)")
git-up
;;
"Branch Switch")
git-switch --gui
;;
"New Branch")
NAME=$(zenity --entry --title="Neuer Zweig" --text="Name des neuen Zweigs:")
[ -n "$NAME" ] && git-branch-new "$NAME"
;;
"Init Project")
git-init-here
;;
"Beenden" | "")
break
;;
esac
done

89
git-up.sh Normal file
View file

@ -0,0 +1,89 @@
#!/bin/bash
# --- Git-Toolbox v1.0.4 ---
# Features: Zweig-Erkennung, Security-Warnung für Main, Hilfe-Funktion (-h)
# 1. Hilfe-Funktion definieren
show_help() {
echo "Nutzung: git-up [OPTIONEN]"
echo ""
echo "Optionen:"
echo " -m 'Nachricht' Direktes Committen mit dieser Nachricht (überspringt Abfrage)."
echo " -t 'v1.0.0' Erstellt direkt einen Versions-Tag (überspringt Abfrage)."
echo " -h Zeigt diese Hilfe an."
echo ""
echo "Beispiel: git-up -m 'Fix: Login-Bug' -t 'v1.0.5'"
exit 0
}
# 2. Variablen initialisieren
COMMIT_MSG=""
TAG_NAME=""
# 3. Argumente auswerten (Flags)
while getopts "m:t:h" opt; do
case $opt in
m) COMMIT_MSG="$OPTARG" ;;
t) TAG_NAME="$OPTARG" ;;
h) show_help ;;
*) echo "Unbekannte Option. Nutze -h für Hilfe."; exit 1 ;;
esac
done
# 4. Aktuellen Zweig (Branch) ermitteln
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
if [ -z "$CURRENT_BRANCH" ]; then
echo "❌ Fehler: Dies ist kein Git-Repository!"
exit 1
fi
echo "--- Arbeitsverzeichnis: $(pwd) ---"
echo "--- Aktueller Zweig: [$CURRENT_BRANCH] ---"
# 5. Security-Check: Arbeiten auf dem Hauptstamm
if [[ "$CURRENT_BRANCH" == "main" || "$CURRENT_BRANCH" == "master" ]]; then
echo "⚠️ WARNUNG: Du arbeitest direkt auf dem Hauptzweig ($CURRENT_BRANCH)."
read -p "Bist du sicher, dass du hier direkt pushen willst? (j/n): " confirm
if [[ ! "$confirm" =~ ^[Jj]$ ]]; then
echo "Abbruch. Erstelle einen neuen Zweig mit: git checkout -b feature-name"
exit 0
fi
fi
# 6. Änderungen prüfen
CHANGES=$(git status --porcelain)
if [ -z "$CHANGES" ]; then
echo "Info: Keine Änderungen zum Committen."
else
git status -s
# Falls keine Nachricht per Flag kam: Abfragen
if [ -z "$COMMIT_MSG" ]; then
echo "------------------------------------------------"
read -p "Was wurde geändert? (Commit-Nachricht): " COMMIT_MSG
fi
# Fallback auf Zeitstempel
[ -z "$COMMIT_MSG" ] && COMMIT_MSG="Update am $(date +'%d.%m.%Y %H:%M')"
git add .
git commit -m "$COMMIT_MSG"
fi
# 7. Tagging (nur wenn gewünscht)
if [ -z "$TAG_NAME" ]; then
echo "------------------------------------------------"
read -p "Neuer Tag (z.B. v1.0.4) oder Enter zum Überspringen: " TAG_NAME
fi
# 8. Intelligenter Push zum aktuellen Zweig
if [ -n "$TAG_NAME" ]; then
git tag -a "$TAG_NAME" -m "Version $TAG_NAME"
echo "Pushe Commits und Tags zu: origin/$CURRENT_BRANCH..."
git push origin "$CURRENT_BRANCH" --follow-tags
else
echo "Pushe Commits zu: origin/$CURRENT_BRANCH..."
git push origin "$CURRENT_BRANCH"
fi
echo "------------------------------------------------"
echo "✅ Fertig! Alles sicher im Zweig '$CURRENT_BRANCH' gespeichert."