62 lines
2.6 KiB
Markdown
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.
|