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