70 lines
2.5 KiB
Bash
70 lines
2.5 KiB
Bash
#!/bin/bash
|
||
echo "🔧 Installation des commandes Git personnalisées..."
|
||
|
||
# Commande deploy
|
||
git config --global alias.deploy '!f() {
|
||
current_branch=$(git branch --show-current);
|
||
echo "📍 Branche actuelle: $current_branch";
|
||
echo "🔍 État avant auto-commit:";
|
||
git status --short;
|
||
|
||
# Auto-commit des modifications si nécessaire
|
||
if ! git diff-index --quiet HEAD --; then
|
||
echo "💾 Auto-commit des modifications sur $current_branch...";
|
||
git add .;
|
||
git commit -m "Auto-commit for deploy to $1 - $(date +%Y-%m-%d\ %H:%M:%S)";
|
||
echo "✅ Modifications commitées sur $current_branch !";
|
||
else
|
||
echo "ℹ️ Pas de modifications à commiter sur $current_branch";
|
||
fi;
|
||
|
||
echo "🔍 État après auto-commit:";
|
||
git status --short;
|
||
echo "🔍 Dernier commit sur $current_branch:";
|
||
git log --oneline -1;
|
||
|
||
if [ "$1" = "staging" ]; then
|
||
echo "🚀 Push de $current_branch vers deploiement-staging...";
|
||
git push origin $current_branch:deploiement-staging --force;
|
||
echo "✅ Staging mis à jour avec le contenu de $current_branch !";
|
||
elif [ "$1" = "production" ] || [ "$1" = "prod" ]; then
|
||
echo "🚀 Déploiement en production...";
|
||
git checkout main;
|
||
git pull origin main;
|
||
git merge $current_branch -m "Deploy from $current_branch to production";
|
||
git push origin main;
|
||
git checkout $current_branch;
|
||
else
|
||
echo "❌ Usage: git deploy [staging|production]";
|
||
return 1;
|
||
fi;
|
||
|
||
echo "🔍 Vous êtes toujours sur: $(git branch --show-current)";
|
||
echo "✅ Déployé sur $1 !";
|
||
}; f'
|
||
|
||
# Commande publish
|
||
git config --global alias.publish '!f() {
|
||
current_branch=$(git branch --show-current);
|
||
git push origin $current_branch;
|
||
echo "✅ Branche $current_branch publiée !";
|
||
echo "👉 Créez votre PR dans Gitea : $current_branch → main";
|
||
}; f'
|
||
|
||
# Commande cleanup
|
||
git config --global alias.cleanup '!f() {
|
||
current_branch=$(git branch --show-current);
|
||
git checkout main;
|
||
git pull origin main;
|
||
git branch -d $current_branch 2>/dev/null;
|
||
git push origin --delete $current_branch 2>/dev/null;
|
||
echo "🧹 Nettoyage terminé !";
|
||
}; f'
|
||
|
||
echo "✅ Commandes Git installées !"
|
||
echo "📖 Utilisation :"
|
||
echo " git deploy staging # → Teste sur staging"
|
||
echo " git deploy production # → Déploie en prod"
|
||
echo " git publish # → Publie pour PR"
|
||
echo " git cleanup # → Nettoie après merge"
|