شاخه های از راه دور - اینها پیوندهایی به وضعیت شاخه ها در مخازن از راه دور شما هستند... این شاخه های محلی هستند و نمی توانند منتقل شوند. آنها هر زمان که از طریق شبکه ارتباط برقرار می کنید به طور خودکار حرکت می کنند. شاخه های از راه دور به عنوان نشانک یادآوری می کنند که آخرین باری که شاخه ها در مخازن از راه دور به آنها متصل شده اید ، به شما یادآوری می کنند.

Merge تعهدات را در دو شاخه مختلف انجام می دهد و آنها را ادغام می کند. نتیجه به گونه ای خواهد بود که گویی همه تغییرات در یک مکان انجام شده اند. خوشبختانه ، پرونده ها به طور خودکار ادغام می شوند مگر اینکه دو تغییر دهنده متناقض باشند ، به شاخه های مختلف متعهد شوید که همان ردیف را به روش های مختلف به روز کنند

در هنگام git pull پرونده های محلی را بازنویسی کنید

اگر در هر زمان گیج و گیج شدید ، همیشه می توانید ادغام را متوقف کنید و همه چیز دوباره براق می شود.


شاخه فعلی در سمت چپ است و شاخه ای که با آن ادغام می شوید در سمت راست نشان داده می شود. برای هر درگیری ، کادر کنار بخش متناقض را علامت بزنید تا به خروجی زیر اضافه شود. می توانید فایل خروجی را در پایین مشاهده کنید و همچنین در صورت نیاز می توانید مستقیماً در این پنجره ویرایش کنید.

به نظر می رسد مانند (نام مخزن از راه دور) / (شاخه). به عنوان مثال ، اگر می خواهید ببینید آخرین شاخه اصلی در سرور مبدا آخرین باری که به آن متصل شدید به چه صورت است ، شاخه اصلی / اصلی را بررسی کنید. اگر شما و یک شریک در مورد یک مشکل کار کرده اید ، و او شعبه Iss53 را پست کرده است ، ممکن است شما خود را داشته باشید شعبه محلی Iss53؛ اما آن شاخه در سرور به تعهد در مبدا / iss53 اشاره خواهد کرد.

از شاخه محلی فعلی یک شاخه جدید در سرور ایجاد کنید




پس از حل تعارض ، فقط خروجی را ذخیره کرده و تغییرات را کپی کنید. بعضی مواقع تغییراتی ایجاد می کنید که نامطلوب است یا باعث کار محصول یا سایت شما نمی شود. بارهای دیگر ، فراموش کرده اید که تغییر خاصی را فعال کنید یا در پیام مرتکب خود اشتباه کردید. این شرایط معمولاً مستلزم برگشت یا لغو تغییراتی است که شما یا تیمتان ایجاد کرده اید.

چگونه می توانم نظر مربوط به آخرین تعهد را تغییر دهم؟

پرداخت ، ادغام ، تغییرات محلی یا از راه دور ، و حتی تغییرات غیرمتعهد "قابل واگرد" هستند. در زیر سناریوهای مختلف ، از کمترین تأثیر تا بزرگترین را شرح خواهیم داد. اینها تنها چند سناریوی رایج است که توسعه دهندگان تجربه می کنند. اگر در مورد چیز دیگری به کمک نیاز دارید ، تیم ما می خواهد راهنمایی کند. برای تماس با کافیست از دکمه "تماس" در گوشه بالا سمت راست استفاده کنید!

همه اینها احتمالاً گیج کننده است ، بنابراین بیایید به یک مثال نگاه کنیم. من یک مخزن از راه دور در GitHub ایجاد کردم https://github.com/n0tb0dy/RemoreBranches

در آنجا من سه تعهد کردم


هنگام شبیه سازی مخزن از راه دور ، Git به طور خودکار آن را نامگذاری می کند اصل و نسب، تمام داده ها را از آنجا می گیرد ، یک نشانگر برای آنچه شاخه به آنجا نشان می دهد ایجاد می کند استاد، و آن را به صورت محلی نامگذاری خواهد کرد مبدا / استاد (اما نمی توانید آن را حرکت دهید). Git همچنین شما را شعبه خودتان می کند استادکه در همان مکان شاخه شروع می شود استاد که در اصل و نسببنابراین شما چیزی برای کار دارید.

چگونه می توان تمام تغییرات انجام نشده در فهرست کار خود را حذف کرد؟

و مواردی وجود دارد که می خواهید تغییرات بدون تعهد را برگردانید. بعضی از جلسات کدگذاری سریع و سریع به پهلو می روند. 10 دقیقه سریع اجرا می تواند منجر به تغییراتی شود که کد شما نسبت به زمان شروع کار در وضعیت بسیار کمتری قرار دارد.

و بنابراین یک شروع تازه می تواند انتخاب خوبی باشد. توجه داشته باشید. یک تفاوت مهم با تغییرات غیرمتعهد این است که نمی توانید تغییراتی را که در حال حذف آنها هستید با دستورات زیر برگردانید. از آنجا که آنها مرتکب نشده اند ، Geet سابقه ای از تغییرات ندارد.

"مبدا" نام خاصی نیست

این هنگام ایجاد مخزن محلی مشابه نام پیش فرض شاخه اصلی است. درست مثل یک شاخه استاد به صورت پیش فرض در دستور ایجاد شده است شروع، به همین ترتیب نام به طور پیش فرض استفاده می شود اصل و نسب به دستور git کلون... اگر git clone –o booyah را صادر کنید ، booyah / master را به عنوان شاخه پیش فرض از راه دور دریافت خواهید کرد.

برای لغو تمام تغییرات ایجاد شده از آخرین تعهد ، از دستور زیر استفاده کنید. در موارد دیگر ، می توانید تغییرات فقط یک پرونده را در نسخه repo کنار بگذارید. مانند تغییرات غیرمتعهد ، ناگزیر تغییراتی که در repo خود ایجاد کرده اید وجود دارد که می خواهید دوباره بررسی کنید. این چیزی نیست که باید ترسناک باشد - این یکی از بزرگترین مزایای کنترل نسخه است. بیایید نگاهی به چند سناریوی مشترک بیندازیم.

لطفا توجه داشته باشید که این یک تعهد خاص در تاریخ شما نیست ، بلکه صرفاً آخرین تعهد است. استفاده ساده است. همچنین ، اگر انجام برخی تغییرات را فراموش کرده اید ، می توانید آنها را در تعهد قبلی لحاظ کنید. این فقط برای آخرین تعهد در دسترس است ، نه تعهدی در تاریخچه repo شما. همچنین ، شما فقط باید از گزینه اصلاح برای تعهدات محلی استفاده کنید ، نه آنچه را که به repo از راه دور فشار داده اید انجام دهید.

و بنابراین به تعهدات ما ... در مخزن از راه دور ، آنها به این شکل هستند

فرمان دادن گیت واکشی فقط به روزرسانی هایی را از سرور دریافت می کنید که هنوز آنها را ندارید و به هیچ وجه دایرکتوری کاری شما را تغییر نمی دهد... این دستور فقط داده ها را دریافت می کند و به شما امکان می دهد تصمیم بگیرید که با آنها چه کاری انجام دهید (ترکیب با داده های خود ، ویرایش و غیره)

چگونه می توان پرونده ای را به یک تعهد خاص در تاریخ برگرداند؟

در غیر این صورت می توانید برای هم تیمی ها سردرگمی ایجاد کنید. این سناریو نیز ساده است. پس از تکمیل ، شما تغییر را در این پرونده انجام داده و آن را به حالت قبلی برگردانید.

چگونه تغییرات ایجاد شده در یک تعهد خاص را برگردانیم

درصورت لغو کاری که انجام داده اید ، گزینه های خوبی پیش رو دارید.

تعهدی را که می خواهید برگردانید مشخص کنید. توجه به مکانیک این تیم مهم است. تعهد برگشتی برداشته نمی شود. به این ترتیب تاریخچه نسخه های شما به جلو حرکت می کند و وضعیت پرونده های شما به عقب حرکت می کند. این گزینه با برگشت کمی متفاوت است. این وضعیت repo شما را به نسخه قبلی منتقل می کند. این یک بازگشت واقعی از وضعیت موجودی شما است.

فرمان دادن جیت کشیدن ، در بیشتر موارد، بلافاصله داده های دریافتی را با شما ادغام می کند.

معمولاً بهتر است فقط از دستور git fetch و دستور git merge استفاده کنید تا بتوانید ادغام را برای خود کنترل کنید.

از بین بردن شاخه های از راه دور

البته این به معنی حذف شاخه ها در یک سرور از راه دور است.

اگرچه تعهدات دیگر بخشی از تاریخچه شعبه شما نیستند ، اما حذف نمی شوند. همچنین هرگونه تغییر محلی که ایجاد کرده اید لغو خواهد شد. از آنجا که هدف از کنترل نسخه ، ثبت کار انجام شده توسط شما و تیم شما است ، بازگشت است بهترین انتخاب برای لغو تغییرات. این منجر به این می شود که پرونده های شما در وضعیت مورد نظر شما قرار بگیرند ، اما همچنین سابقه کامل شما را دست نخورده نگه می دارند.

بعضی اوقات توسعه دهندگان خردسال می خواهند کار خود را لغو کنند به این امید که هم تیمی های مسن متوجه اشتباهات خود نشوند. این واقعیت را بپذیرید که همیشه یاد می گیرید. نشان دادن به هم تیمی های خود که می فهمید چگونه تغییرات خود را با ظرافت خنثی می کنید ، کمک زیادی خواهد کرد!

$ git push origin - حذف سرور


کف زدن! و شعبه موجود در سرور راه دور از بین رفته است. اما اساساً این دستور فقط نشانگر شاخه را در سرور راه دور حذف می کند. تا زمانی که دستور جمع آوری زباله را اجرا نکنید ، سرور Git به ذخیره تمام اطلاعات مربوط به تعهدات ادامه خواهد داد.

چگونه می توانم تعهدی را به طور کامل از تاریخ محو کنم؟

اگر این اتفاق افتاد ، می توانید استفاده کنید. با یک پروژه واقعی ، این یک فهرست در سرور تولید شما خواهد بود. می توانید اطلاعات بیشتری درباره repo های برهنه بخوانید ، اما برای اهداف ما ، هدف آنها فقط گرفتن فشار است. اکنون یک مخزن توسعه با اولین تعهدات خود داریم. مرحله آماده سازی نهایی ما ثبت مخزن "از راه دور" است.

شما فقط تعهد خود را از توسعه به مخزن خالی "راه دور" خود هدایت کرده اید. بیایید به پوشه قلاب مخزن از راه دور برویم. قلاب ها اسکریپت هایی هستند که روی برخی از رویدادها اجرا می شوند. با دریافت و پذیرش فشار متعهدین شلیک می شود. سپس فایل اسکریپت را پس از دریافت در ویرایشگر متن دلخواه خود باز کنید.

شاخه های از راه دور پیوندهایی به وضعیت شاخه ها در مخازن از راه دور شما هستند. این شاخه های محلی هستند و نمی توانند منتقل شوند. آنها هر زمان که از طریق شبکه ارتباط برقرار می کنید به طور خودکار حرکت می کنند. شاخه های از راه دور به عنوان نشانک یادآوری می کنند که آخرین باری که شاخه ها در مخازن از راه دور به آنها متصل شده اید ، به شما یادآوری می کنند.

هر یک از مراحل را طی کنید. ما این مقادیر را می خوانیم و متغیرهایی را به ترتیب از ، به و شاخه به آنها اختصاص می دهیم. با فرض گردش کاری که تولید را در شاخه اصلی حفظ می کند ، می خواهیم قبل از استقرار در صورت اصلی نبودن شاخه تو در تو ، از این سناریو خارج شویم. اکنون که فهرست استقرار ما به روز است ، می توانیم تمام وظایف استقرار را که برای تکمیل آنها نیاز داریم ، اجرا کنیم.

قلاب پس از پرورش خود را ذخیره کنید و اجازه دهید آن را آزمایش کند! اکنون دایرکتوری که در آن مستقر هستیم باید پر شود و به روز شود. هنگام کار بر روی قلاب پست قلاب ، رها کردن تاریخچه تعهد پروژه خود و فشار دادن هر زمان که تغییر ایجاد می کنید ، آزار دهنده است. خوشبختانه ، از آنجا که این فقط یک اسکریپت است ، می توانیم آن را از خط فرمان جعل کنیم.

به نظر می رسد مانند (نام مخزن از راه دور) / (شاخه). به عنوان مثال ، اگر می خواهید ببینید آخرین شاخه اصلی در سرور مبدا آخرین باری که به آن متصل شدید به چه صورت است ، شاخه اصلی / اصلی را بررسی کنید. اگر شما و یک شریک در مورد یک مشکل کار کرده اید و آنها شعبه Iss53 را بارگذاری کرده اند ، ممکن است شعبه محلی Iss53 خود را داشته باشید. اما آن شاخه در سرور به تعهد در مبدا / iss53 اشاره خواهد کرد.

صادرات منابع ، مشابه "صادرات svn"

این روش تنظیم قلاب های خود را پس از مصرف آسان می کند ، به شما امکان می دهد سریع اسکریپت را تکرار کرده و دوباره آن را اجرا کنید. برای دنیای واقعی ، پوشه های "راه دور" و "قابل توسعه" شما معمولاً روی سرور نصب می شوند ، نه به صورت محلی. از اینجا ، این به پروژه شما بستگی دارد که مشخص کند کدام اقدامات را به طور خودکار انجام دهید!

این یک مدل توزیع شده قدرتمند دارد که به کاربران پیشرفته امکان انجام کارهای پیچیده با شاخه ها و بازنویسی تاریخچه را می دهد. حیف است که یادگیری آن بسیار سخت است ، چنین رابط کاربری ناخوشایندی وجود دارد خط فرمانو با کاربرانش چنین کاملاً تحقیرآمیز است. مدل اطلاعات پیچیده است - و شما باید همه اینها را بدانید. این تقریبا همه چیزهایی است که شما باید بدانید. در واقع ، شاخه ها برچسب ها و پرونده هایی هستند که شما از قبل در مورد آنها می دانید ، بنابراین سه چیز جدید وجود دارد که شما واقعاً باید یاد بگیرید.

همه اینها احتمالاً گیج کننده است ، بنابراین بیایید به یک مثال نگاه کنیم. فرض کنیم شما سرور Git خود را بصورت آنلاین در git.ourcompany.com دارید. اگر چیزی را از آن شبیه سازی کنید ، Git به طور خودکار نام آن را مبدا قرار می دهد ، همه داده ها را از آنجا می گیرد ، یک نشانگر برای آنچه شاخه اصلی به آن اشاره می کند ایجاد می کند و نام آن را محلی / اصلی می گذارد (اما نمی توانید آن را حرکت دهید) ... Git همچنین شاخه اصلی خود را برای شما در نظر می گیرد که در همان محل شاخه اصلی مبدا شروع می شود ، بنابراین شما می توانید با آن کار کنید (شکل 3-22 را ببینید).

چگونه می توان تغییراتی را در یک پرونده خاص لغو کرد و آن را به حالتی که پس از آخرین تعهد در آن بود برگرداند؟

نسخه ها با ادغام عجیب و غریب خطی هستند. نحو خط فرمان کاملاً دلخواه و متناقض است. مشخص کردن نام فایل ها معنای برخی از دستورات را کاملا تغییر می دهد. این ترکیبی از خواندن است پست الکترونیک با استفاده از یک پچ و بنابراین از نحو دیگری برای وصله استفاده می شود. صفحات انسانی یک "لعنت" همه کاره هستند. آنها دستورات را از دیدگاه یک دانشمند کامپیوتر و نه یک کاربر توصیف می کنند.

شکل 3-22. شبیه سازی یک پروژه Git به شما شاخه اصلی و مبدا خود را نشان می دهد / استاد را به شاخه اصلی در مبدا نشان می دهید.

اگر کاری را در شعبه ارشد محلی خود انجام دهید و در این حین شخص دیگری تغییرات را به git.ourcompany.com انجام دهد و شاخه اصلی را در آنجا به روز کند ، داستان های شما طور دیگری ادامه خواهد یافت. همچنین ، تا زمانی که به سرور مبدا وصل نشوید ، نشانگر مبدا / اصلی شما حرکت نخواهد کرد (شکل 3-23 را ببینید).

به یاد داشته باشید دشوار است مدل اطلاعاتی در مرحله 1؟ مانند سرطان به رشد خود ادامه می دهد. گیتا آنقدر فرسایش ندارد که انتزاع داشته باشد. اساساً هیچ تفاوتی بین جزئیات اجرا و رابط کاربر... واضح است که یک کاربر پیشرفته برای درک پیچیدگی های دستورات مختلف ممکن است لازم باشد کمی در مورد نحوه اجرای توابع بیاموزد. اما حتی مبتدیان نیز به سرعت با جزئیات شنیع داخلی مواجه می شوند. در تئوری ، "لوله کشی" و "چینی" وجود دارد ، اما شما بهتر است یک لوله کش باشید تا بدانید چگونه با چین کار کنید.

این مثل یک داستان مادربزرگ پیر است که آزادراه ترسناک نیست ، او اگر بخواهد می تواند 20 کیلومتر در ساعت در مسیر سمت چپ حرکت کند. ترجمه: مادربزرگ ساده است. تا سومین ، ترول به آزادراه ، قله اواخر می کشد ، اما مرمرهای داخل را تماشا کنید. تا پنجم سخت است ، سپس ترمز دستی می چرخد \u200b\u200bتا بیرون بیاید.



شکل 3-23. هنگام انجام کارهای محلی و شخصی که تغییرات را به یک سرور از راه دور وارد می کند ، هر داستان به روشی متفاوت ادامه می یابد.

برای همگام سازی کار خود ، دستور git fetch origin را اجرا کنید. این دستور به دنبال این است که منبع سرور با کدام یک مطابقت داشته باشد (در مورد ما ، git.ourcompany.com). تمام داده هایی را که هنوز ندارید از آنجا بازیابی می کند و ذخیره داده محلی خود را به روز می کند. مبدا / master را به موقعیت جدیدی منتقل می کند (شکل 3-24 را ببینید).

قدرت برای شخص همراه ، با هزینه شخص کمک کننده

شاید کسی یک رابط بهتر بنویسد که پیچیدگی های غیرضروری مانند فهرست و مخزن محلی را پنهان کند. وعده اصلی هر سیستم کنترل نسخه این است: اگر کد منبع ارزشمند خود را اینجا قرار دهید ، دیگر بی خطر است. شما می توانید هر تغییری را که دوست دارید ایجاد کنید و همیشه می توانید آنها را برگردانید. روشهای مختلفی که یک متعهد می تواند محتوای مخزن را برای همیشه از بین ببرد.

در یک پروژه منبع باز سنتی کد منبع فقط یک نفر مجبور بود با پیچیدگی های شاخه ها و ادغام ها کنار بیاید: نگهدارنده. چرا این کار را با سرمایه گذاران جدید انجام می دهید - کسانی که در این پروژه سرمایه گذاری نکرده اند و انگیزه های لازم برای پرتاب دست و ترک آن هستند؟


شکل 3-24. دستور git fetch پیوندهای از راه دور شما را به روز می کند.

برای نشان دادن اینکه شاخه های از راه دور در یک موقعیت چند سرور از راه دور چگونه به نظر می رسند ، فرض کنید شما یک سرور داخلی Git دیگری نیز دارید که فقط برای توسعه یکی از تیم های توسعه دهنده شما استفاده می شود. این سرور در git.team1.ourcompany.com واقع شده است. می توانید آن را به عنوان یک پیوند از راه دور جدید به پروژه ای که در حال حاضر روی آن کار می کنید اضافه کنید ، همانطور که در فصل 2 توضیح داده شده است. نام این سرور از راه دور را تیم بگذارید ، که این یک مختصر برای URL کامل است (نگاه کنید به شکل . 3-25)

داستان Geeta یک مشت دروغ است

خروجی اصلی کار توسعه باید کد منبع باشد. آیا واقعاً تاریخچه ای که به خوبی حفظ شده باشد ، یک محصول جانبی مهم است؟ بیشتر ادله مربوط به جابجایی ، به ویژه بر اساس قضاوت های زیبایی شناختی درباره "ادغام های ناموزون" در تاریخ یا "مجلات غیرقابل خواندن" است. البته راه حل مناسب بهترین خروجی ورود به سیستم است که می تواند این ادغام های ناخواسته را فیلتر کند.

کارهای ساده به دستورات زیادی نیاز دارند

هدف از کار بر روی یک پروژه منبع باز ایجاد برخی تغییرات و سپس اشتراک آنها با جهان است.



شکل 3-25 افزودن سرور راه دور اضافی.

اکنون می توانید git fetch teamone را برای واکشی تمام مواردی که در سرور ندارید اجرا کنید. از آنجا که این سرور در حال حاضر فقط زیر مجموعه ای از داده های مبدا دارد ، Git هیچ داده ای دریافت نمی کند ، اما یک شاخه از راه دور به نام teamone / master را بیرون می کشد ، که به همان تعهد شاخه اصلی در teamone اشاره دارد ( شکل 3-26 را ببینید)



شکل 3-26. اکنون یک لینک محلی به شاخه اصلی teamone دارید.

ارسال تغییرات

اگر یک شاخه serverfix دارید که می خواهید با آن شخص دیگری کار کنید ، می توانید همانطور که شاخه اول خود را فشار دادید آن را فشار دهید. اجرای git push (سرور از راه دور) (شاخه):

$ git push origin serverfix شمارش اشیا: 20 ، انجام شد. فشرده سازی اشیا: 100٪ (14/14) ، انجام شد. نوشتن اشیا: 100٪ (15/15) ، 1.74 KiB ، انجام شده است. کل 15 (دلتا 5) ، 0 (دلتا 0) دوباره استفاده شد [ایمیل محافظت شده]: schacon / simplegit.git * serverfix -\u003e serverfix

نوعی انقباض است. Git به طور خودکار نام شعبه serverfix را به refs / Heads / serverfix: refs / Heads / serverfix گسترش می دهد ، به این معنی که "شاخه serverfix محلی من را بردارید و شاخه serverfix از راه دور را از آنجا به روز کنید". ما در مورد قسمت Refs / Head / Part به تفصیل در فصل 9 بحث خواهیم کرد ، اما معمولاً می توان آن را حذف کرد. همچنین می توانید git push origin serverfix را اجرا کنید: serverfix - همان اتفاق خواهد افتاد - می گوید: "serverfix مرا بگیرید و آن را از راه دور سرور کنید". می توانید از این قالب برای انتقال شعبه محلی به شاخه ای از راه دور با نام دیگر استفاده کنید. اگر نمی خواهید این شاخه در سرور راه دور serverfix نامیده شود ، پس به جای دستور قبلی ، git push origin serverfix: awesomebranch را اجرا کنید. این کار شعبه serverfix محلی شما را به شاخه عالی پروژه از راه دور هدایت می کند.

$ git واکشی مبدل از راه دور: شمارش اشیا: 20 ، انجام شد. از راه دور: فشرده سازی اشیا: 100٪ (14/14) ، انجام شد. از راه دور: کل 15 (دلتا 5) ، 0 استفاده مجدد 0 (دلتا 0) باز کردن بسته بندی اشیا objects: 100٪ (15/15) ، انجام شد. از جانب [ایمیل محافظت شده]: schacon / simplegit * serverfix -\u003e مبدا / serverfix

توجه به این نکته مهم است که وقتی شاخه های از راه دور جدیدی هنگام دریافت اطلاعات دریافت می کنید ، به طور خودکار نسخه های قابل ویرایش محلی را برای آنها دریافت نمی کنید. به عبارت دیگر ، در مورد ما شاخه جدیدی برای serverfix دریافت نخواهید کرد - فقط نشانگر مبدأ / serverfix است که نمی توانید تغییر دهید.

برای ادغام این کار در شاخه فعلی خود ، git merge origin / serverfix را اجرا کنید. اگر به شاخه serverfix خود نیاز دارید که می توانید روی آن کار کنید ، می توانید یکی را بر اساس شاخه از راه دور ایجاد کنید:

$ git checkout -b serverfix origin / serverfix Branch serverfix برای ردیابی refs شاخه از راه دور / remotes / origin / serverfix تنظیم شده است. به شعبه جدید "serverfix" تغییر یافت

این به شما یک شعبه محلی می دهد تا در آن کار کنید. از همان جایی که مبدا / serverfix است شروع می شود.

ردیابی شاخه ها

بررسی یک شعبه محلی با git checkout از یک شعبه از راه دور به طور خودکار آنچه را که نامیده می شود ایجاد می کند شاخه ردیابی شده... شاخه های ردیابی شاخه های محلی هستند که مستقیماً با شاخه از راه دور مرتبط هستند. اگر در حالی که در یک شاخه ردیابی شده هستید ، git push را تایپ کنید ، Git از قبل می داند که به کدام سرور و به کدام شاخه تغییرات اعمال می شود. به همین ترتیب ، با اجرای git pull در یکی از این شاخه ها ابتدا تمام پیوندهای از راه دور بدست می آید و سپس به طور خودکار با شاخه از راه دور مربوطه ادغام می شود.

در هنگام شبیه سازی مخزن ، به عنوان یک قاعده ، یک شاخه اصلی به طور خودکار ایجاد می شود که مبدا / master را ردیابی می کند ، بنابراین git push و git pull کار این شاخه را از جعبه خارج می کنند و به استدلال های اضافی نیاز ندارند. با این حال ، می توانید پیگیری را برای شاخه های دیگر مخزن از راه دور تنظیم کنید. شما فقط یک نمونه ساده از چگونگی انجام این کار را مشاهده کردید - git checkout -b [branch] [حذف شده است. سرور] / [شاخه]. اگر از Git نسخه 1.6.2 یا بالاتر استفاده می کنید ، همچنین می توانید از میانبر --track استفاده کنید:

$ git checkout - track track / serverfix Branch serverfix برای ردیابی refs شاخه از راه دور / remotes / origin / serverfix تنظیم شده است. به شعبه جدید "serverfix" تغییر یافت

برای راه اندازی شعبه محلی با نامی متفاوت از شعبه از راه دور ، می توانید به راحتی از نسخه اول با نام شعبه محلی دیگر استفاده کنید:

$ git checkout -b sf origin / serverfix شعبه sf برای ردیابی refs شاخه از راه دور / از راه دور / مبدا / serverfix تنظیم شده است. تغییر شعبه جدید "sf"

اکنون شعبه sf محلی شما به طور خودکار تغییرات را از مبدا / serverfix فشار داده و می کشد.

حذف شاخه ها در یک سرور از راه دور

بیایید بگوییم شما و همكارانتان با یك نوآوری كار خود را به پایان رسانده و آن را در شاخه اصلی در سرور راه دور (یا شاخه دیگری كه كد پایدار در آن ذخیره شده است) ادغام كرده اید. می توانید با استفاده از نحو تا حدی مسخره git push [از راه دور ، شاخه ای را بر روی سرور راه دور فشار دهید. سرور]: [شاخه]. برای حذف شاخه serverfix در سرور ، موارد زیر را انجام دهید:

$ git push origin: serverfix به [ایمیل محافظت شده]: schacon / simplegit.git - serverfix

کف زدن دیگر هیچ شاخه ای در سرور شما وجود ندارد. ممکن است بخواهید صفحه فعلی را علامت گذاری کنید ، زیرا به این دستور و نحوی که به احتمال زیاد فراموش خواهید کرد ، نیاز خواهید داشت. با بازگشت به دستور ترکیبی git push می توانید این دستور را به خاطر بسپارید. سرور] [loc. شاخه]: [حذف کنید. شاخه] ، که کمی زودتر به آن نگاه کردیم. حذف [لوک شاخه] ، شما در اصل می گویید "هیچ چیز را در مخزن من نگیر و آن را به گونه ای در [از راه دور. شاخه] همان بود. "