Command Palette

Search for a command to run…

ZarynZaryn
أدلة·2 min read

الفروع والدمج

اعمل على أفكار جديدة دون المساس بالشيفرة الأساسية، ثم أعدها إليها. مع حل تعارضات الدمج خطوة بخطوة.

## ما الفرع الفرع سلسلة من الإيداعات لها اسم. يبدأ كل مستودع بفرع واحد اسمه `main`. عندما تنشئ فرعًا جديدًا يبدأ من الإيداع الذي أنت عليه، ومن بعدها تكون إيداعاته منفصلة عن `main`. لهذا الفروع هي الطريقة الآمنة للتجربة: - العمل على ميزة جديدة دون كسر `main` - إصلاح خطأ بينما تنتظر ميزة غير مكتملة على فرع آخر - السماح لزميل بمراجعة عملك في طلب دمج قبل دخوله `main` ```text main: A ── B ── C \ new-search: D ── E ``` ## أنشئ فرعًا وانتقل إليه ```bash zev checkout -b new-search ``` ينشئ هذا الفرع `new-search` عند الإيداع الحالي وينقلك إليه، وتأتي معك تغييراتك غير المودعة. أودِع كالمعتاد؛ تذهب الإيداعات إلى `new-search`: ```bash zev add . zev commit -m "مربع البحث، النسخة الأولى" ``` اعرض كل الفروع؛ المعلَّم بـ `*` هو حيث أنت: ```bash zev branch ``` ## التبديل بين الفروع ```bash zev checkout main ``` يغيّر zev ملفاتك لتطابق الفرع. لا يضيع شيء؛ كله في السجل. إن كانت لديك تغييرات غير مودعة سيكتب التبديل فوقها، يتوقف zev ويخبرك بالملف. لديك ثلاثة خيارات: ```bash zev commit -m "عمل جارٍ" # 1. أودِعها على هذا الفرع zev stash # 2. ضعها جانبًا (zev stash pop لاحقًا) zev checkout --force main # 3. تخلّص منها ``` ## أدخِل فرعًا إلى main (الدمج) ```bash zev checkout main zev merge new-search ``` إن لم يتغير `main` منذ بدء الفرع، يحرّك zev الفرع `main` إلى الأمام ليشمل إيداعات الفرع. وإن كان لكليهما إيداعات جديدة، يجمعها zev ملفًا ملفًا وسطرًا سطرًا. وعندما يكون الطرفان قد غيّرا أسطرًا مختلفة، يتم هذا تلقائيًا. في الفريق، الطريقة المعتادة هي طلب الدمج: أرسل الفرع وشغّل `zev pr` ليراجعه الآخرون أولًا. ## عندما يغيّر الطرفان الأسطر نفسها إن غيّر `main` وفرعك الأسطر نفسها من ملف، لا يستطيع zev معرفة النسخة التي تريدها، فيتوقف قبل تغيير أي شيء: ```text Can't bring 'new-search' in automatically: your commit "Tweak header" and 'new-search' changed the same lines of: index.html Nothing was changed. To combine them by hand, run: zev merge new-search --resolve ``` إليك كيف تجمعهما يدويًا، وهذا ما يُسمّى *حل التعارض*. **1. ابدأ الحل:** ```bash zev merge new-search --resolve ``` **2. افتح كل ملف يذكره.** علّم zev الأماكن التي غيّرها الطرفان: ```text <h1> <<<<<<< main Welcome to my site ======= Welcome! Search below >>>>>>> new-search </h1> ``` **3. عدّله إلى ما يجب أن يكون**، واحذف أسطر العلامات الثلاثة. **4. جهّز الملفات وأكمل:** ```bash zev add index.html zev merge --continue ``` غيّرت رأيك في المنتصف؟ `zev merge --abort` يعيد كل شيء كما كان. ## احذف فرعًا انتهيت منه ```bash zev branch -d new-search ``` يحذف هذا الاسم فقط. الإيداعات المدموجة في فرع آخر تبقى في سجله. ## الفروع على Zaryn ```bash zev push origin new-search ``` عندما تكون على الفرع، يفعل `zev push` الشيء نفسه. ويحصل عليه الآخرون بـ `zev pull origin new-search` أو بالاستنساخ مع `--branch new-search`.