Initialer Commit
This commit is contained in:
commit
b6fe9d4bc2
8 changed files with 248 additions and 0 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
*.log
|
||||
.env
|
||||
node_modules/
|
||||
BIN
Data/logo.jpg
Normal file
BIN
Data/logo.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
1
README.md
Normal file
1
README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
# git-toolbox
|
||||
15
git-branch-new.sh
Executable file
15
git-branch-new.sh
Executable 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
65
git-init-here.sh
Executable 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
39
git-switch.sh
Executable 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
36
git-toolbox.sh
Executable 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
89
git-up.sh
Normal 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."
|
||||
Loading…
Add table
Reference in a new issue