پالت فرمان

دنبال فرمانی برای اجرا بگردید…

ZarynZaryn
مرجع دستورات·۲۱ دقیقه مطالعه

همهٔ دستورات

همهٔ دستورات zev، با دستوراتی که هر روز به کار می‌برید در ابتدا. هر مورد می‌گوید دستور چه می‌کند، چطور نوشته می‌شود و نمونه دارد.

دستورات بر اساس کاری که انجام می‌دهید گروه‌بندی شده‌اند و گروه‌ها از روزمره تا تخصصی مرتب شده‌اند. بیشتر افراد فقط به سه گروه اول نیاز دارند. در ترمینال، `zev help` همهٔ دستورات را فهرست می‌کند و `zev help <command>` طرز استفاده از یکی را نشان می‌دهد. در این صفحه `/` را بزنید تا جست‌وجو کنید. **در خط‌های استفاده:** `<name>` یعنی چیزی را خودتان می‌نویسید، `[name]` یعنی اختیاری است و `a | b` یعنی یکی از این دو. ## فهرست سریع | می‌خواهم… | دستور | |---|---| | پروژهٔ تازه‌ای شروع کنم | [`zev init`](#zev-init) | | پروژه‌ای را از Zaryn کپی کنم | [`zev clone`](#zev-clone) | | ببینم چه چیزی را تغییر داده‌ام | [`zev status`](#zev-status)، [`zev diff`](#zev-diff) | | انتخاب کنم چه چیزی ذخیره شود | [`zev add`](#zev-add) | | یک نسخه ذخیره کنم | [`zev commit`](#zev-commit) | | تاریخچه را ببینم | [`zev log`](#zev-log)، [`zev show`](#zev-show) | | تغییرات یک فایل را برگردانم | [`zev restore`](#zev-restore) | | فایلی را حذف کنم | [`zev rm`](#zev-rm) | | کارم را موقتاً کنار بگذارم | [`zev stash`](#zev-stash) | | روی چیزی جداگانه کار کنم | [`zev branch`](#zev-branch)، [`zev checkout`](#zev-checkout) | | شاخه‌ها را ترکیب کنم | [`zev merge`](#zev-merge) | | کارم را به Zaryn بفرستم | [`zev push`](#zev-push) | | کار دیگران را بگیرم | [`zev pull`](#zev-pull) | | بررسی بخواهم | [`zev pr`](#zev-pr) | | مطمئن شوم چیزی بدتر نشده (تست‌ها، سرعت، اندازه، امتیاز مدل) | [`zev eval`](#zev-eval) | | بسته‌ها را سریع‌تر و از راه زرین نصب کنم | [`zev mirror`](#zev-mirror) | | پروکسی‌ام را برای همهٔ برنامه‌ها یا به‌عنوان وی‌پی‌ان به کار ببرم | [`zev proxy`](#zev-proxy)، [`zev vpn`](#zev-vpn) | ## شروع پروژه ### zev init پوشهٔ فعلی (یا پوشه‌ای که نام می‌برید) را مخزن zev می‌کند. یک پوشهٔ پنهان `.zev` برای تاریخچه می‌سازد و به فایل‌هایتان دست نمی‌زند. ```bash zev init zev init my-project ``` ### zev clone یک مخزن را روی رایانه‌تان کپی می‌کند: تمام تاریخچه، فایل‌ها، و `origin` که روی جایی که از آن آمده تنظیم می‌شود. پوشه به نام مخزن ساخته می‌شود، مگر نامی بدهید. ```text zev clone <address> [folder] [--branch <name>] ``` ```bash zev clone someone/project zev clone someone/project my-copy --branch dev zev clone someone/project@dev zev clone https://zaryn.xyz/someone/project zev clone file:///home/me/backups/project ``` برای مخزن‌های خصوصی باید با دسترسی [وارد شده](#zev-login) باشید. پوشه نباید از قبل وجود داشته باشد، یا باید خالی باشد. ### zev config تنظیمات این مخزن را می‌خواند و تغییر می‌دهد. دو تنظیمی که لازم دارید نام و ایمیل شماست که روی هر کامیت می‌نشیند. ```bash zev config set user.name "نام شما" zev config set user.email "you@example.com" zev config get user.name zev config list ``` ## کار روزمره ### zev status نشان می‌دهد کجا هستید: شاخه، آنچه برای کامیت بعدی مرحله‌بندی شده، آنچه تغییر داده‌اید اما مرحله‌بندی نکرده‌اید، فایل‌هایی که حذف کرده‌اید و فایل‌های تازه‌ای که zev هنوز دنبال نمی‌کند. هر بخش می‌گوید دستور بعدی چیست. ```bash zev status zev status --json # برای اسکریپت‌ها ``` ```text On branch main Changes to be committed: new file: notes.md Changes not staged for commit: modified: todo.txt deleted: old.txt Untracked files: draft.txt ``` ### zev add تغییرات را مرحله‌بندی می‌کند، یعنی آن‌ها را برای کامیت بعدی انتخاب می‌کند. فایل‌های تازه، تغییرکرده و حذف‌شده را پوشش می‌دهد. ```text zev add <file | folder | .>... ``` ```bash zev add notes.md # یک فایل zev add src # همهٔ یک پوشه zev add . # همهٔ پروژه zev add old.txt # old.txt حذف شده: حذفش مرحله‌بندی می‌شود ``` فایل‌هایی که با `.zevignore` جورند رد می‌شوند (مگر zev از قبل دنبالشان کند). فایل‌هایی که از آخرین کامیت تغییر نکرده‌اند مرحله‌بندی نمی‌شوند، پس اجرای `zev add .` همیشه بی‌خطر است. ### zev commit هر چیزی را که مرحله‌بندی کرده‌اید، با پیامی که توصیفش می‌کند، به‌صورت یک کامیت تازه ذخیره می‌کند. ```bash zev commit -m "رفع دکمهٔ ورود در صفحه‌های کوچک" zev commit "همین، بدون -m" ``` اگر چیزی مرحله‌بندی نشده باشد، zev همین را می‌گوید و کامیتی نمی‌سازد. پیام خوب در چند کلمه می‌گوید چه چیزی و چرا تغییر کرد. ### zev diff خط‌های تغییرکرده را نشان می‌دهد: `+` اضافه‌شده و `-` حذف‌شده، با کمی متن تغییرنکرده در اطراف هر تغییر. ```text zev diff [file | folder] تغییرات شما که هنوز مرحله‌بندی نشده‌اند zev diff --staged [file] آنچه کامیت بعدی خواهد داشت zev diff <commit> [<commit>] [-- file] بین کامیت‌ها ``` ```bash zev diff zev diff todo.txt zev diff --staged zev diff HEAD~3 HEAD # آنچه سه کامیت آخر تغییر دادند zev diff v1.0 main -- src # بین یک برچسب و یک شاخه، فقط در src ``` ### zev log کامیت‌ها را از تازه‌ترین فهرست می‌کند: شناسه، نویسنده، تاریخ و پیام. ```text zev log [--oneline] [-n <count> | --all] [<commit or branch>] ``` ```bash zev log # ۱۰ تای آخر zev log --oneline # هر کدام یک خط zev log -n 30 zev log --all zev log feature # تاریخچهٔ شاخه‌ای دیگر ``` ### zev show یک کامیت و تغییراتش را نشان می‌دهد. بدون نام بردن کامیت، تازه‌ترین را نشان می‌دهد. ```bash zev show zev show 5f7f5e22 # چند نویسهٔ اول شناسه کافی است zev show HEAD~1 # کامیتِ پیش از تازه‌ترین zev show v1.0 # یک برچسب ``` **نام بردن کامیت‌ها.** هر جا zev کامیتی می‌خواهد، می‌توانید `HEAD` (کامیتی که رویش هستید)، `HEAD~2` (دو تا پیش از آن)، نام یک شاخه، نام یک برچسب، یا ابتدای شناسهٔ کامیت (دست‌کم ۴ نویسه) را بنویسید. ### zev restore تغییرات فایل‌ها را برمی‌گرداند. ```text zev restore <file | folder | .>... دور ریختن تغییرات: برگشت به آخرین کامیت zev restore --staged <file | folder | .>... بیرون آوردن از مرحله‌بندی: تغییرات می‌مانند، در کامیت بعدی نمی‌روند ``` ```bash zev restore todo.txt # ویرایش‌هایم در todo.txt را برگردان zev restore . # همهٔ ویرایش‌هایم را برگردان (مراقب باشید!) zev restore old.txt # برگرداندن فایل حذف‌شده zev restore --staged notes.md # notes.md را از کامیت بعدی بیرون بیاور ``` تغییراتی که با `zev restore` دور می‌ریزید هرگز کامیت نشده بودند، پس برنمی‌گردند. اگر شاید بعداً لازمشان داشته باشید، به جایش از [`zev stash`](#zev-stash) استفاده کنید. ### zev rm یک فایل ردیابی‌شده را حذف می‌کند و حذفش را برای کامیت بعدی مرحله‌بندی می‌کند. ```text zev rm [--cached] [--force] <file | folder>... ``` ```bash zev rm old.txt zev rm build # یک پوشهٔ کامل zev rm --cached secrets.env # دیگر دنبالش نکن، اما فایل را نگه دار ``` zev فایلی را که تغییرات کامیت‌نشده دارد حذف نمی‌کند تا کاری تصادفی از دست نرود. `--force` به هر حال حذفش می‌کند. `--cached` همان چیزی است که وقتی چیزی را اشتباهی کامیت کرده‌اید لازم دارید (به `.zevignore` هم اضافه‌اش کنید). ### zev stash تغییرات کامیت‌نشده‌تان را کنار می‌گذارد و پوشه‌ای تمیز (برگشته به آخرین کامیت) به شما می‌دهد. بعداً آن‌ها را برمی‌گردانید. ```text zev stash [save [message]] کنار گذاشتن تغییرات zev stash list دیدنشان zev stash pop [id] برگرداندن تازه‌ترین (یا همان یکی) و حذفش zev stash apply [id] برگرداندن و نگه داشتنش zev stash drop [id] حذفش ``` ```bash zev stash save "جعبهٔ جست‌وجوی نیمه‌کاره" zev checkout main # کار دیگری بکنید zev checkout feature zev stash pop ``` stash تغییرات مرحله‌بندی‌شده و نشدهٔ فایل‌های ردیابی‌شده را دربر می‌گیرد. فایل‌های ردیابی‌نشده سر جایشان می‌مانند. `zev stash pop` فایلی را که پس از stash تغییر داده‌اید بازنویسی نمی‌کند؛ می‌گوید کدام فایل مانع است. ## شاخه‌ها شاخه یک خط کاری جداست. می‌توانید چیزی را روی یک شاخه امتحان کنید بی‌آنکه به `main` دست بزنید، و وقتی آماده شد ادغامش کنید. داستان کامل در [شاخه‌ها و ادغام](/docs/fa/branches) است. ### zev branch شاخه‌ها را فهرست می‌کند (`*` شاخه‌ای است که رویش هستید)، یکی می‌سازد یا یکی را حذف می‌کند. ```bash zev branch # فهرست zev branch new-search # ساختن (همان جا می‌مانید) zev branch -d new-search # حذف ``` ### zev checkout به شاخهٔ دیگری می‌رود و فایل‌هایتان را مطابقش می‌کند. ```text zev checkout <branch> [--force] zev checkout -b <new-branch> ``` ```bash zev checkout new-search zev checkout -b new-search # بساز و برو، تغییراتت هم همراهت می‌آیند ``` zev هرگز کار کامیت‌نشده‌تان را بازنویسی نمی‌کند: اگر جابه‌جایی فایلی تغییرکرده را جایگزین می‌کرد، چیزی را تغییر نمی‌دهد و نام فایل را می‌گوید. اول کامیت یا [stash](#zev-stash) کنید. `--force` تغییراتتان را دور می‌ریزد و جابه‌جا می‌شود. ### zev switch همان `zev checkout` است، با نامی که بعضی‌ها انتظارش را دارند. `zev switch -c <new-branch>` شاخه می‌سازد و به آن می‌رود. ### zev merge کامیت‌های یک شاخهٔ دیگر را به شاخه‌ای که رویش هستید می‌آورد. ```text zev merge <branch> zev merge <branch> --resolve وقتی هر دو همان خط‌ها را تغییر داده‌اند zev merge --continue | --abort ``` ```bash zev checkout main zev merge new-search ``` اگر شاخه‌ها هم‌پوشانی نداشته باشند، zev خودش ترکیبشان می‌کند. اگر هر دو همان خط‌ها را تغییر داده باشند، بی‌آنکه چیزی را عوض کند متوقف می‌شود و `--resolve` را پیشنهاد می‌کند که هر دو نسخه را در فایل علامت می‌زند: ```text <<<<<<< main the line as it is on main ======= the line as it is on new-search >>>>>>> new-search ``` فایل را ویرایش کنید تا آنچه را می‌خواهید نگه دارید، خط‌های علامت را پاک کنید، بعد `zev add <file>` و `zev merge --continue`. `zev merge --abort` همه‌چیز را به حالت قبل برمی‌گرداند. [قدم به قدم](/docs/fa/branches#وقتی-هر-دو-طرف-همان-خطها-را-تغییر-دادهاند). ### zev rebase کامیت‌های شاخه‌ای را که رویش هستید روی شاخه‌ای دیگر بازپخش می‌کند، انگار از آخرین کامیت آن شروع کرده بودید. ```bash zev rebase main ``` اگر به این دلیل متوقف شد که هر دو همان خط‌ها را تغییر داده‌اند، به جایش `zev merge main --resolve` را بزنید: همین بازپخش را انجام می‌دهد و می‌گذارد خط‌ها را دستی ترکیب کنید. ### zev cherry-pick یک کامیت را از هر جایی روی شاخه‌ای که رویش هستید کپی می‌کند. ```bash zev cherry-pick 47bec4f5 ``` ### zev tag به یک کامیت نامی ثابت می‌دهد، معمولاً برای یک نسخهٔ انتشار. ```text zev tag [list] فهرست برچسب‌ها zev tag <name> برچسب زدن کامیت فعلی zev tag -a <name> -m <message> برچسب با پیام و نویسنده zev tag -d <name> حذف برچسب ``` ```bash zev tag v1.0 zev show v1.0 ``` ## اشتراک روی Zaryn ### zev login این رایانه را به Zaryn (یا سرور zev دیگری) وارد می‌کند. برای هر رایانه یک بار. ```text zev login <server> --register <username> --email <address> ساختن حساب (کدی که ایمیل می‌شود تأییدش می‌کند) zev login <server> --register <username> --code <123456> تمام کردن، اگر ترمینال را بسته بودید zev login <server> --device [--client <name>] تأیید در مرورگر (حساب‌های موجود، سرورها، عامل‌ها) zev login <server> ورود دوباره با هویت این پروژه ``` ```bash zev login zaryn.xyz --register sara --email sara@example.com zev login zaryn.xyz --device ``` توکن در `~/.config/zev/credentials` ذخیره می‌شود و فقط خودتان می‌توانید بخوانیدش. ### zev whoami سرور و حسابی را که با آن وارد شده‌اید نشان می‌دهد. ### zev logout ورود ذخیره‌شده را از این رایانه پاک می‌کند. خود توکن تا وقتی آن را در Zaryn باطل نکنید کار می‌کند («تنظیمات ← عامل‌های هوش مصنوعی و توکن‌ها»). ### zev new پروژهٔ فعلی را روی Zaryn می‌سازد و آن را به‌عنوان `origin` وصل می‌کند. نام، نوع پروژه (کد، مدل، داده، عامل یا توپولوژی)، عمومی یا خصوصی، و مجوز را می‌پرسد. ```bash zev new zev push ``` ### zev push کامیت‌هایتان را به یک ریموت می‌فرستد. بدون هیچ چیز دیگری، شاخه‌ای را که رویش هستید به `origin` می‌فرستد. ```text zev push [remote] [branch] ``` ```bash zev push zev push origin feature-x zev push me/project main ``` از فایل‌های بزرگ فقط بخش‌های تغییرکرده فرستاده می‌شوند. در [مخزن‌های رمزنگاری‌شده](/docs/fa/encrypted-repositories) فایل‌ها پیش از ارسال روی رایانهٔ خودتان رمز می‌شوند. ### zev pull کامیت‌های تازه را از یک ریموت می‌گیرد و فایل‌هایتان را مطابقشان می‌کند. ```text zev pull [remote] [branch] ``` ```bash zev pull zev pull origin main ``` اگر به‌روزرسانی فایلی را که تغییر داده‌اید بازنویسی می‌کرد، zev هیچ فایلی را تغییر نمی‌دهد و نام آن فایل را می‌گوید. کامیت‌های تازه همچنان ذخیره می‌شوند؛ کامیت یا stash کنید و بعد `zev checkout <branch>`. ### zev remote ریموت‌ها را مدیریت می‌کند؛ یعنی نشانی‌های نام‌گذاری‌شدهٔ نسخه‌های دیگر مخزن. ```bash zev remote # فهرست zev remote add upstream team/project zev remote show upstream zev remote remove upstream ``` ## کار با دیگران ### zev pr از شاخه‌ای که رویش هستید یک درخواست ادغام باز می‌کند. zev عنوان و توضیح را از کامیت‌هایتان پیش‌نویس می‌کند، نشانشان می‌دهد و پیش از باز کردن می‌پرسد. ```text zev pr [--title <t>] [--desc <d>] [--target <branch>] [--yes] zev pr list | view <number> | merge <number> ``` ```bash zev checkout -b fix-typo zev commit -m "رفع غلط تایپی در README" zev push zev pr ``` [همکاری از طریق ترمینال](/docs/fa/cli-collaboration) را ببینید. ### zev issue issueها را باز و مدیریت می‌کند (گزارش باگ، ایده، کار). ```text zev issue [--title <t>] [--desc <d>] zev issue list [--all] | view <number> | comment <number> | close <number> ``` ### zev fork-repo نسخهٔ خودتان از مخزن کس دیگری را روی Zaryn می‌سازد تا آزادانه تغییرش دهید و با درخواست ادغام پس بفرستید. ```bash zev fork-repo someone/project --clone ``` `--as <name>` نام دیگری به نسخه می‌دهد؛ `--clone` آن را روی رایانه‌تان هم کلون می‌کند. ### zev ci CI را برای یک مخزن روشن می‌کند و اجراهای اخیر را نشان می‌دهد. ```bash zev ci enable zev ci status ``` ### zev mcp یک سرور MCP اجرا می‌کند تا یک عامل هوش مصنوعی (Claude Code، Codex و دیگران) بتواند از طریق zev با Zaryn کار کند. [اسکریپت‌نویسی و عامل‌های هوش مصنوعی](/docs/fa/automation-and-agents) را ببینید. ```bash claude mcp add zaryn -- zev mcp ``` ## بیشتر بدانید ### zev blame برای هر خط یک فایل، کامیت و نویسنده‌ای را نشان می‌دهد که آخرین بار تغییرش داده است. ```bash zev blame src/login.js ``` ### zev bisect کامیتی را که چیزی را خراب کرد با نصف کردن تاریخچه پیدا می‌کند: شما کامیت‌ها را خوب یا بد علامت می‌زنید و zev کامیت بعدی برای آزمایش را انتخاب می‌کند. ```bash zev bisect start zev bisect bad # کامیت فعلی خراب است zev bisect good 5f7f5e22 # این قدیمی‌تر کار می‌کرد # آنچه zev می‌آورد را آزمایش کنید و علامت بزنید: zev bisect good / zev bisect bad zev bisect reset # تمام ``` ### zev search کامیت‌ها، آزمایش‌ها، معیارها، تبار و snapshotها را جست‌وجو می‌کند. ```bash zev search commits login zev search all "learning rate" ``` ### zev compare دو کامیت، شاخه، snapshot یا آزمایش را کنار هم می‌گذارد. ```bash zev compare branches main feature ``` ## شبکه‌های خصوصی ### zev net این رایانه را به یکی از شبکه‌های خصوصی تیمتان (Premium) وصل می‌کند: دستگاه‌ها مستقیم و خصوصی، از پشت NAT، با WireGuard به هم می‌رسند. [شبکه‌های خصوصی](/docs/fa/private-networks) را ببینید. ```text sudo zev net up <owner>/<network> پیوستن (در پس‌زمینه اجرا می‌شود) sudo zev net down [<network>] قطع موقت (--forget برای ترک همیشگی) zev net status هم‌تاها، اتصال‌ها، ترافیک zev net ls شبکه‌هایی که در آن‌ها هستید zev net map [<owner>/<network>] چه کسی به چه کسی می‌رسد، و از کار افتادن یک چیز چه هزینه‌ای دارد zev net share <port> [--name web] اشتراک یک برنامه روی این دستگاه با شبکه zev net config <owner>/<network> فایل پیکربندی برای برنامه‌های خود WireGuard (گوشی) ``` ## دستگاه‌های شبکه ### zev site این ماشین را جمع‌آوری‌کنندهٔ یک سایت می‌کند: روترها و سوئیچ‌های سایت را با SSH و فقط دستورهای خواندنی می‌خواند (Cisco IOS / IOS-XE، Huawei VRP، MikroTik RouterOS، FRRouting، VyOS) تا از کانفیگ‌ها پشتیبان بگیرد، انحراف را ببیند، نقشهٔ زنده و طرح آدرس‌ها را بسازد و توضیح مسیر را ممکن کند؛ پروب‌های سایت را هم اجرا می‌کند. گذرواژه‌ها روی جمع‌آوری‌کننده می‌مانند. [سایت‌های شبکه](/docs/fa/network-sites) و [توضیح مسیر و پروب‌ها](/docs/fa/network-paths) و [دوقلوی دیجیتال](/docs/fa/network-twin) را ببینید. ```text zev site join <token> [--server URL] این ماشین را جمع‌آوری‌کنندهٔ سایت کن zev site cred add <name> --user <user> [--key <file>] [--enable] zev site cred ls · zev site cred rm <name> ورودهای نگه‌داشته‌شده روی این جمع‌آوری‌کننده zev site test <address> [--cred <name>] [--vendor cisco|huawei|mikrotik|frr|vyos] [--config] zev site discover <range>… کدام آدرس‌ها به SSH پاسخ می‌دهند و چه هستند zev site probe ping|tcp|http|dns <target> [--port N] [--expect X] یک پروب را از همین‌جا اجرا کن، همان‌طور که سرویس اجرا می‌کند zev site diff <owner>/<site> <device>=<file>… [--drills] [--json] یک تغییر کانفیگ چه می‌کند، پیش از انجامش (اگر ترافیکی قطع شود با کد ۱ خارج می‌شود) sudo zev site install جمع‌آوری‌کننده را به‌صورت سرویس اجرا کن zev site status این جمع‌آوری‌کننده و دستگاه‌هایش zev site forget-key <address> پس از اینکه کلید SSH دستگاهی عمداً عوض شد ``` ## امنیت و اعتماد ### zev encrypt فایل‌های یک مخزن خصوصی را روی دستگاه‌های خودتان رمز می‌کند، تا Zaryn فقط داده‌ای نگه دارد که نمی‌تواند بخواند. [مخزن‌های رمزنگاری‌شده](/docs/fa/encrypted-repositories) را ببینید. ```text zev encrypt [status | on | share | recovery | unlock | approve <fingerprint> | rotate] ``` ### zev verify-storage با اثبات‌های رمزنگاری، نه با اعتماد، بررسی می‌کند که سرور واقعاً همهٔ آخرین push شما را نگه می‌دارد. [ذخیره‌سازی راستی‌آزمایی‌شده](/docs/fa/verified-storage) را ببینید. ```bash zev verify-storage ``` ### zev advisory کامیت‌ها را آسیب‌دیده اعلام می‌کند (مثلاً مجموعه‌دادهٔ مسموم یا کلید لورفته)، تا به مالکان هر چیزی که روی آن‌ها ساخته شده خبر داده شود. [هشدارها و تبار](/docs/fa/advisories) را ببینید. ```text zev advisory file | list | show <id> | refresh | withdraw <id> | ack <id> | verify <id> | feed ``` ### zev taint نشان می‌دهد کدام هشدارها به یک مخزن می‌رسند. `zev taint check` یک دروازهٔ CI است: تا وقتی هشدار حل‌نشده‌ای اعمال شود شکست می‌خورد. ```bash zev taint zev taint check --fail-on high ``` ### zev identity کلید امضای این مخزن را نشان می‌دهد (و بار اول می‌سازد). ### zev sign `zev sign <cid>` یک شیء را با هویت شما امضا می‌کند؛ `zev verify <cid>` امضا را بررسی می‌کند. ### zev notarize هش یک snapshot یا کامیت را روی یک بلاک‌چین ثبت می‌کند، به‌عنوان اثبات عمومی اینکه در آن زمان وجود داشته است. ```text zev notarize snapshot <name> | commit <id> | verify <record> | list | config ``` ### zev audit گزارش کامل منشأ مخزن را چاپ می‌کند. ## یادگیری ماشین `zev eval` پسرفت را در هر پروژه‌ای می‌گیرد؛ بقیه چیزهایی را که برای پروژه‌های یادگیری ماشین مهم است، کنار کد دنبال می‌کنند. ### zev eval تست‌ها، ساخت، بنچمارک‌ها یا ارزیابی شما را اجرا می‌کند، عددها را پیدا می‌کند (نتیجهٔ تست‌ها، پوشش کد، زمان‌ها، اندازهٔ باندل و فایل اجرایی و فرم‌ور، زمان فریم، امتیاز مدل)، برای این کامیت در Zaryn ثبت می‌کند و همان لحظه می‌گوید آیا درخواست ادغام به `main` مسدود می‌شود. اگر معیاری بیش از حد مجازش (به واحد خودش یا درصدی مثل `5%`) بدتر شود با کد ۱ خارج می‌شود، پس در CI هم کار می‌کند. ببینید: [ارزیابی‌ها و تبار](/docs/fa/evals-and-lineage). ```bash zev eval init # یک بار: Rust، JS/TS، Go، Zig، C/C++، PlatformIO، Godot، Unity و Python را تشخیص می‌دهد و zev-evals.json را می‌سازد zev eval init -- python eval.py # یا از فرمان خودتان شروع کنید zev eval run # پیش از هر درخواست ادغام، یا در CI zev eval report junit.xml lcov.info # فایل‌های نتیجه‌ای که از قبل دارید zev eval # این کامیت در کنار main zev eval compare main my-branch zev eval badge binary # Markdown برای README ``` ### zev metrics اعدادی (دقت، خطا، تأخیر…) را همراه کامیت‌ها ثبت و مقایسه می‌کند. ```bash zev metrics set accuracy 0.913 zev metrics show zev metrics compare <commit-a> <commit-b> ``` ### zev check دروازهٔ پسرفت برای CI: اگر معیاری بدتر از [آستانه‌ها](#zev-threshold) شده باشد با خطا خارج می‌شود. ```bash zev check ``` ### zev threshold حدهایی را که `zev check` اعمال می‌کند تنظیم می‌کند. ```bash zev threshold set accuracy --min 0.9 zev threshold list ``` ### zev history روند یک معیار در طول کامیت‌ها را به‌صورت یک نمودار کوچک نشان می‌دهد. ```bash zev history accuracy ``` ### zev sdiff دیف معنایی: معیارهای تغییرکرده، و تغییرات ساختاری کد (تغییر نام تابع‌ها، تغییر امضاها) به جای فقط خط‌ها. [مقایسهٔ معنایی](/docs/fa/semantic-diff) را ببینید. ### zev experiment یک فرضیه را از شروع تا نتیجه دنبال می‌کند. ```text zev experiment start <name> [description] | list | show <name> | complete <name> | abandon <name> | compare <a> <b> ``` ### zev dataset مجموعه‌داده‌ها را ثبت می‌کند، به بخش‌هایی (shard) تقسیمشان می‌کند و ثبت می‌کند کدام بخش کجا استفاده شده، تا بدانید یک بخش خراب روی چه چیزهایی اثر گذاشته. ```text zev dataset register <path> --name <n> | split <n> --shards <k> | assign | lineage <n> | impact <n> --shard <i> | list ``` ### zev lineage ثبت می‌کند چه چیزی از چه چیزی ساخته شده: داده، اسکریپت، مدل. ```text zev lineage record <trained_on|fine_tuned_from|evaluated_on|derived_from|uses> <owner/repo[@commit]> zev lineage upstream zev lineage add <id> <type> <description> | link <child> <parent> | show <id> | list | graph | provenance <cid> ``` `record` و `upstream` روی Zaryn کار می‌کنند: این مخزن از چه آمده، و آیا آن از آن زمان تغییر کرده است. بقیه فقط گرافی درون همین مخزن نگه می‌دارند. ### zev context ثبت می‌کند یک تغییر از انسان آمده یا از یک مدل هوش مصنوعی، و با چه دستوری (prompt). ```bash zev context add src/parser.py --model claude --kind llm zev context blame src/parser.py ``` ### zev wdiff فایل‌های وزن مدل (`.safetensors`، PyTorch، NumPy) را تنسور به تنسور مقایسه می‌کند. ```bash zev wdiff base.safetensors tuned.safetensors ``` ### zev merge-weights دو checkpoint را ادغام می‌کند: میانگین، وزنی، SLERP یا TIES. ```bash zev merge-weights a.safetensors b.safetensors --output merged.safetensors --strategy slerp --alpha 0.5 ``` ### zev drift متوجه می‌شود وقتی معیارها از یک خط پایه فاصله می‌گیرند. ```text zev drift baseline <snapshot or commit> | config --metric <m> --delta <d> | check | show | history | watch ``` ### zev reproduce یک دستور و خروجی‌اش را ثبت می‌کند و بعداً بررسی می‌کند که در محدودهٔ مجاز بازتولید می‌شود. ### zev snapshot snapshotهای نام‌دار از وضعیت مخزن، در صورت تمایل دائمی. ```text zev snapshot create <name> | list | show <name> | restore <name> | diff <a> <b> ``` ### zev suggestions تبارهایی را که Zaryn از وزن‌های مدل حدس زده («این مدل انگار از آن یکی fine-tune شده») فهرست می‌کند تا تأیید یا رد کنید. ## پیشرفته این‌ها برای تنظیمات و ابزارهای خاص‌اند. برای کار روزمره لازمشان ندارید. | دستور | چه می‌کند | |---|---| | `zev hook list \| add <type> <script> \| remove <type>` | اجرای اسکریپت پیش یا پس از کامیت، push، ادغام (`pre-commit`، `post-commit`، `pre-push`، `post-merge`، `commit-msg`) | | `zev gc` | پاک کردن اشیایی که دیگر چیزی به آن‌ها اشاره نمی‌کند | | `zev export <file>` / `zev import <file>` / `zev archive-info <file>` | مخزن (یا یک snapshot) به‌صورت یک فایل آرشیو | | `zev publish commit \| experiment \| snapshot \| config` | انتشار در یک مقصد پیکربندی‌شده | | `zev ipfs status \| add \| cat \| pin \| unpin \| block-put \| block-get \| block-stat` | کار با یک گره IPFS محلی | | `zev ipns key-gen \| publish \| resolve \| announce` | نام‌های IPNS | | `zev peer status \| announce \| listen \| connect \| sync` | همگام‌سازی مستقیم با هم‌تاها از طریق libp2p | | `zev dag show \| walk \| put \| stat \| query \| export \| import \| get` | گراف نشانی‌دهی محتوایی، به‌طور مستقیم | | `zev ipld migrate \| log` | کامیت‌های IPLD | | `zev graft <cid> --as <name>` | پیوند یک CID بیرونی با یک نام خوانا | | `zev fedmerge --from <file.car>` | ادغام کار از یک فایل `.car`، بدون سرور | | `zev fork <meta-cid> <folder>` | فورک از یک CID فرادادهٔ IPFS | | `zev fetch-range <hash> <start> <len>` | بخشی از یک شیء سرور، بررسی‌شده با هشش | | `zev cat <cid>` / `zev hash <data>` | خواندن یک شیء / محاسبهٔ یک CID | | `zev verify-release <url> <cid>` / `zev verify-sth <url>` | بررسی لاگ شفافیت سرور | | `zev push-api` / `zev pull-api` / `zev clone-api` | نسخه‌های سروری push، pull و clone؛ `zev push`، `zev pull` و `zev clone` خودشان انتخابشان می‌کنند | ## خود zev ### zev self ```bash zev self update # به‌روزرسانی zev (امضای دانلود بررسی می‌شود) zev self update --check # فقط بگو نسخهٔ تازه‌تری هست یا نه zev self uninstall ``` اگر zev را از یک مدیر بسته (apt، dnf، zypper، pacman) گرفته‌اید، همان‌جا به‌روزش کنید؛ `zev self update` می‌گوید چه دستوری. ### zev proxy اتصال‌های خود zev (ورود، clone، push، pull، به‌روزرسانی، شبکه‌های خصوصی) را برای شبکه‌هایی که راه Zaryn را می‌بندند از راه پروکسی خودتان می‌فرستد: VLESS، VMess، Trojan، Shadowsocks، Hysteria2 و WireGuard (با موتور Xray)، SOCKS5 یا HTTP، یا اشتراک فروشنده‌تان. چند سرور هم‌زمان با جایگزینی خودکار، زنجیره، و مسیرهایی برای آنچه مستقیم می‌رود. ببینید: [استفاده از zev از راه پروکسی](/docs/fa/proxy). ```text zev proxy start ['<link>'] [--tun] [--kill-switch] everything on in one go (apps, desktop, VPN with --tun) zev proxy stop everything off again zev proxy is it on, and through which server zev proxy add <name> [<link>] [--use] ذخیرهٔ پروکسی (بدون لینک: بچسبانید، تا در تاریخچه نماند) zev proxy use <name> | off رفتن از راه آن، یا دوباره مستقیم zev proxy use <a>,<b> | auto | <sub> چند سرور: سه تای سریع‌تر روشن، و رفتن سراغ دیگری وقتی یکی جواب ندهد zev proxy probe [<name>|auto] سنجش هم‌زمان همهٔ سرورها و رتبه‌بندی‌شان zev proxy chain <name> <a> <b> [<c>…] رسیدن به <b> از راه <a>؛ با نامش استفاده کنید zev proxy route [direct|proxy|rm <route>… | iran | clear] چه چیزی مستقیم برود (example.com، CIDR، geoip:ir) zev proxy test [<name>] وصل شدن از راه آن و زمان رسیدن به Zaryn zev proxy doctor [<name>] [--no-fix] [--json] پیدا کردن آنچه راه را بسته و درمان آنچه zev می‌تواند (برای هر شبکه) zev proxy set [forget | dns|ipv4|fragment|fp …] درمان‌های شبکه zev proxy ls | status | rm <name> zev proxy engine install نصب Xray (برای همه به‌جز socks5:// و http://؛ با بررسی SHA-256) zev proxy sub add <name> <url> یک اشتراک: همهٔ سرورهایش، با نام‌های <name>-1، -2 … zev proxy sub update [<name>] | ls | rm <name> zev proxy config <name> پیکربندی Xrayای که zev برایش اجرا می‌کند (رمزهایش در آن است) zev proxy share on [--port N] [--lan] | off | status one SOCKS5+HTTP port (127.0.0.1:10808) for every app zev proxy system on | off the desktop's proxy setting and new sessions' http_proxy, all_proxy… zev proxy ssh [<host>…] | off SSH (git push to GitHub…) through the proxy zev proxy connect <host> <port> a connection on stdin/stdout (SSH's ProxyCommand) zev proxy run <command…> one command through it (HTTP, HTTPS, SOCKS, git over SSH) zev proxy check where you appear from; DNS and IPv6 leaks zev proxy top [--once] live traffic of the shared port or the VPN ``` ### zev vpn همهٔ ترافیک این رایانه از راه پروکسی‌ای که با `zev proxy use` انتخاب کرده‌اید: همهٔ برنامه‌ها، DNS و IPv6 آن‌ها، روی لینوکس. [کل رایانه: zev vpn](/docs/fa/proxy#کل-رایانه-zev-vpn) را ببینید. ```text sudo zev vpn on [--kill-switch] [--exclude <name|ip/cidr>,…] روشن کردن (یک سرویس سیستم) sudo zev vpn off خاموش کردن؛ مسیرها، قاعده‌ها و جدول دیوارهٔ آتش برداشته می‌شوند zev vpn status ``` ### zev mirror pip، uv، npm، cargo و rustup را به آینه‌های زرین می‌فرستد؛ آینه‌هایی که هر فایل را با هشی که ابزار از قبل می‌داند می‌سنجند. [آینه‌ها](/docs/fa/package-mirrors#همه-با-هم-zev-mirror) را ببینید. ```text zev mirror چه چیزی تنظیم شده، ابزار به ابزار zev mirror on [cargo npm pip uv rustup] همه را به زرین بفرست (پیش‌فرض: همه) zev mirror off [...] برگرداندن به سرورهای خودشان (فقط خط‌های zev پاک می‌شوند) zev mirror zig [--check|--undo] build.zig.zon این پروژه از راه آینه (--check: همین حالا همهٔ وابستگی‌ها را دانلود و بررسی کن) ``` ### zev version `zev --version` نسخه و سیستمی را که برایش ساخته شده چاپ می‌کند. ### zev help `zev help` همهٔ دستورات را فهرست می‌کند؛ `zev help <command>` طرز استفاده از یکی را نشان می‌دهد. برای غلط تایپی پیشنهاد می‌دهد (`zev comit` ← منظورتان `zev commit` بود؟).