Command Palette

Search for a command to run…

ZarynZaryn
البدء·3 min read

مستودعك الأول خطوة بخطوة

أنشئ مستودعًا، واحفظ نسخًا، واطّلع على السجل، وتراجع عن الأخطاء، مع شرح كل فكرة.

يبني هذا الدليل مشروعًا صغيرًا من الصفر. وفي الطريق تتعلم الأفكار الأربع التي يقوم عليها zev كله: **مجلد العمل**، و**منطقة التجهيز**، و**الإيداعات**، و**السجل**. إن لم تكن قد ثبّت zev بعد، فابدأ من [التثبيت](/docs/ar/installation). ## أنشئ المستودع ```bash mkdir notes cd notes zev init ``` ```text Initialized empty Zev repository in ./.zev/ ``` *المستودع* (repository) مجلد يحتفظ zev بسجله. السجل كله في المجلد المخفي `.zev`. لا تعدّله يدويًا؛ وإن حذفته يعود المجلد عاديًا ويضيع السجل. اضبط اسمك وبريدك مرة لكل مشروع، فهما يظهران على كل إيداع: ```bash zev config set user.name "سارة أحمد" zev config set user.email "sara@example.com" ``` ## الأماكن الثلاثة لعملك من المفيد أن تتخيل ثلاثة أماكن: | المكان | ما هو | كيف يصل إليه شيء | |---|---|---| | **مجلد العمل** | ملفاتك كما تراها في المحرر | أنت تعدّلها | | **منطقة التجهيز** | التغييرات التي اخترتها للإيداع التالي | `zev add` | | **السجل** | كل إيداع أنشأته، محفوظ للأبد | `zev commit` | لا شيء يصل إلى السجل بالصدفة. أنت تختار ما تجهّزه، ثم تودعه. ## أول إيداع أنشئ ملفين: ```bash echo "شراء حليب" > todo.txt echo "أفكار للمشروع" > ideas.txt ``` اسأل zev عمّا يراه: ```bash zev status ``` ```text On branch main Untracked files: (zev add <file> to start tracking; list in .zevignore to hide) ideas.txt todo.txt ``` *Untracked* تعني أن zev يرى الملفات لكنه لا يحتفظ بسجلها بعد. جهّزهما وأودعهما: ```bash zev add . zev commit -m "بداية ملاحظاتي" ``` ```text added ideas.txt added todo.txt Staged 2 change(s). Next: zev commit -m "what you changed" Created commit: 5f7f5e226bb19014179575681efba0f8be95eb6a8e64c1fc7dbc6f4d68224d01 Committed 2 file(s) ``` تلك السلسلة الطويلة هي **معرّف** الإيداع: بصمة (hash) لكل ما فيه، فلا يمكن أن يختلط بإيداع آخر. يكفي دائمًا أن تكتب أحرفه الأولى، مثل `5f7f5e22`. **رسالة الإيداع الجيدة** تقول ما الذي تغيّر ولماذا في كلمات قليلة: «إصلاح الدخول عندما تحتوي كلمة المرور على مسافات» أنفع لاحقًا بكثير من «إصلاح». ## انظر إلى ما تغيّر غيّر ملفًا وأضف آخر: ```bash echo "شراء خبز" >> todo.txt echo "الاتصال بعلي" > calls.txt zev status ``` ```text On branch main Changes not staged for commit: (zev add <file> to include them; zev restore <file> to throw them away) modified: todo.txt Untracked files: (zev add <file> to start tracking; list in .zevignore to hide) calls.txt ``` انظر إلى الأسطر المتغيرة: ```bash zev diff ``` ```text modified: todo.txt @@ -1,1 +1,2 @@ شراء حليب +شراء خبز ``` `+` سطر أُضيف و`-` سطر حُذف. يخبرك سطر `@@ -1,1 +1,2 @@` بمكان التغيير في الملف؛ يمكنك تجاهله في البداية. الآن أودِع `todo.txt` وحده، واترك `calls.txt` لوقت لاحق: ```bash zev add todo.txt zev diff --staged zev commit -m "إضافة الخبز إلى القائمة" ``` يعرض `zev diff --staged` بالضبط ما سيحتويه الإيداع التالي. من العادات الجيدة أن تراجعه قبل الإيداع. ## اقرأ السجل ```bash zev log ``` أحدث إيداع في الأعلى. عرض أقصر، سطر لكل إيداع: ```bash zev log --oneline ``` لرؤية إيداع واحد وما غيّره بالضبط: ```bash zev show 5f7f5e22 # ببداية معرّفه zev show HEAD # أحدث إيداع zev show HEAD~1 # الذي قبله ``` `HEAD` تعني «الإيداع الذي أنت عليه الآن». `HEAD~1` الذي قبله، و`HEAD~2` الذي قبلهما، وهكذا. ## التراجع الجميع يخطئ. إليك كيف تخرج من الأخطاء الشائعة. **التخلّص من تغييرات لم تجهّزها** (العودة إلى نسخة آخر إيداع): ```bash zev restore todo.txt ``` انتبه: التغييرات التي تتخلص منها تضيع نهائيًا لأنها لم تُودَع قط. **إلغاء تجهيز ملف** (تبقى تعديلاتك، لكنه لن يدخل الإيداع التالي): ```bash zev restore --staged todo.txt ``` **وضع التغييرات جانبًا لحظة** (مثلًا لتنظر في شيء آخر بمجلد نظيف): ```bash zev stash zev stash pop # أعِدها ``` **استعادة ملف حذفته بالخطأ** (إن كان قد أُودِع من قبل): ```bash zev restore calls.txt ``` مواقف أخرى، مثل حذف الملفات وإعادة تسميتها، في [كيف أفعل…؟](/docs/ar/how-do-i). ## حذف ملف أو إعادة تسميته لحذف ملف وتسجيل ذلك في الإيداع التالي: ```bash zev rm ideas.txt zev commit -m "حذف الأفكار" ``` الحذف بأي طريقة أخرى يعمل أيضًا؛ ثم `zev add ideas.txt` (أو `zev add .`) يجهّز الحذف. لإعادة التسمية، غيّر اسم الملف كالمعتاد وجهّز الاسمين: ```bash mv calls.txt phone.txt zev add calls.txt phone.txt zev commit -m "إعادة تسمية calls إلى phone" ``` ## إبعاد بعض الملفات مخرجات البناء والسجلات والأسرار لا مكان لها في السجل. اذكرها في ملف اسمه `.zevignore` في المجلد الأعلى للمشروع: ```text # .zevignore node_modules/ build/ *.log .env ``` الملفات المتجاهلة لا تظهر في `zev status`، و`zev add .` يتخطاها. أودِع `.zevignore` نفسه ليتجاهل كل من يعمل على المشروع الملفات نفسها. ## ما التالي - [الفروع والدمج](/docs/ar/branches): جرّب أفكارًا دون المساس بعملك الأساسي. - [شارك عملك على Zaryn](/docs/ar/pushing-and-pulling): الإرسال والجلب والاستنساخ. - [كل الأوامر](/docs/ar/commands): المرجع الكامل.