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

62 lines
2.6 KiB
Markdown

# نشر نظيف على 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) — لا يدفع شي
```bash
./scripts/publish-to-gitea.sh
```
يعرض لك آخر 5 commits بعد التنظيف عشان تتأكد قبل الدفع الفعلي.
### 2) دفع فعلي لـ Gitea
```bash
./scripts/publish-to-gitea.sh --push
```
### 3) تخصيص الاسم/الإيميل
```bash
AUTHOR_NAME="Mohammed Ali" AUTHOR_EMAIL="me@example.com" ./scripts/publish-to-gitea.sh --push
```
### 4) دفع لمستودع/فرع مختلف
```bash
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 (على الماك)
```bash
git clone https://desktop-11cj93j.tail866923.ts.net/rafraa/TX.git
cd TX
./start.sh
```
ما راح تلقى أي إشارة لـ Replit في الكود ولا في الـ history.