Files
TX/PUBLISH.md
riyadhafraa c43a28e143 Add script to clean and publish repository history
Create and document a script that removes Replit-specific files and author information from the Git history before pushing to Gitea.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 9417ede9-0069-4ffd-a7b5-6379f4c70b4d
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/kI0sxlu
Replit-Helium-Checkpoint-Created: true
2026-05-14 06:11:02 +00:00

2.6 KiB

نشر نظيف على Gitea

سكربت scripts/publish-to-gitea.sh يدفع نسخة نظيفة 100% من أي أثر لـ Replit إلى مستودع Gitea، بدون ما يلمس بيئة Replit أو شغلك المحلي.

وش يسوّي بالضبط

عند كل تشغيل، يبني نسخة مؤقتة في /tmp/ ويعمل عليها التالي قبل الدفع:

الإجراء التفاصيل
يحذف الملفات الخاصة بـ Replit .replit, .replitignore, replit.nix, .local/, .agents/, attached_assets/, كل .replit-artifact/
ينظّف رسائل الـ commits يشيل أي سطر يبدأ بـ Replit- (مثل Replit-Commit-Author, Replit-Commit-Screenshot-Url)
يعيد كتابة هوية المؤلف يستبدل *@users.noreply.replit.com باسم وإيميل من اختيارك (الافتراضي: Riyadh <dev@tx.local>)
يطبّق التغييرات على كل الـ commits السابقة يعني حتى الـ history القديم ينظّف، مو بس الـ commits الجديدة
يدفع force-push للـ remote فقط لو أعطيت --push

الاستخدام

1) معاينة (dry run) — لا يدفع شي

./scripts/publish-to-gitea.sh

يعرض لك آخر 5 commits بعد التنظيف عشان تتأكد قبل الدفع الفعلي.

2) دفع فعلي لـ Gitea

./scripts/publish-to-gitea.sh --push

3) تخصيص الاسم/الإيميل

AUTHOR_NAME="Mohammed Ali" AUTHOR_EMAIL="me@example.com" ./scripts/publish-to-gitea.sh --push

4) دفع لمستودع/فرع مختلف

GITEA_REMOTE_URL="https://gitea.example.com/me/my-repo.git" \
GITEA_BRANCH="main" \
./scripts/publish-to-gitea.sh --push

ضمانات الأمان

  • كل العمل في مجلد مؤقت (/tmp/tx-publish-XXXXXX) — يتحذف تلقائياً.
  • الـ git history الأصلي عندك في Replit ما يتغيّر.
  • Docker setup والـ workflows تكمل تشتغل بشكل عادي.
  • ⚠️ Force-push يستبدل تاريخ Gitea كاملاً — لو في clones أخرى للمستودع، لازم تعمل clone جديد.

متى أشغّله

كل ما تبي تنشر تحديثات لـ Gitea، شغّل السكربت بـ --push. ما يحتاج تشغيله إلا لما تبي تحدّث Gitea.

استرجاع نسخة العمل من Gitea (على الماك)

git clone https://desktop-11cj93j.tail866923.ts.net/rafraa/TX.git
cd TX
./start.sh

ما راح تلقى أي إشارة لـ Replit في الكود ولا في الـ history.