This Repo is a cli tool to place food order in a third party service
پوشه .git در ریپازیتوریهای Git قرار میگیرد و تمام اطلاعات ورژن کنترل و تاریخچه تغییرات را در خود ذخیره میکند. با دستور "git init" ساخته میشود و شامل مخزن ریپازیتوری، شاخهها، شاخههای از راه دور، شاخههای محلی و تنظیمات است. این پوشه بسیار مهم است و بدون آن استفاده از Git غیرممکن است.
در Atomic Commit، هنگامی که تغییرات در سیستم ورژن کنترل Git اعمال میشوند، تمامی تغییرات یک گروه را در یک تراکنش واحد اعمال میکند. این به این معناست که تغییرات مربوط به یک commit به صورت کامل و همزمان اعمال میشوند، بدون اینکه تغییرات ناهمگون در سیستم ایجاد شود. در صورتی که یکی از تغییرات در commit اعمال نشود، هیچ تغییری در سیستم ایجاد نمیشود.
در Atomic Pull Request نیز، اتمام کار درخواست pull به این معناست که تمام تغییرات مربوط به درخواست pull در یک واحد منطقی و همگون به سیستم اضافه میشود. این به این معناست که تمامی تغییرات مربوط به pull request به صورت کامل و همزمان ادغام میشوند، بدون اینکه تغییرات ناهمگونی در سیستم به وجود آید.
Fetch: تغییرات را دریافت میکند اما به صورت خودکار ادغام نمیکند. Pull: تغییرات را دریافت کرده و به صورت خودکار با شاخه فعلی ادغام میکند. Merge: تغییرات را با استفاده از commit جدیدی با شاخه فعلی ادغام میکند. Rebase: تغییرات را با قرار دادن commit های فعلی بر روی commit های جدیدی با شاخه فعلی ادغام میکند.
در کل، Reset برای حذف commitها و تغییر تاریخچه، Revert برای لغو تغییرات commitها و حفظ تاریخچه، و Restore برای بازیابی فایلها به وضعیت قبلی استفاده میشوند
وقتی فایلهایی را تغییر میدهید، این تغییرات در محیط کاری (working directory) شما اعمال میشوند. اما برای اضافه کردن تغییرات به commit بعدی، باید آن تغییرات را به محیط Staging قراار میدهد. این محیط Staging، یک نقطه میانی بین working directory و commit نهایی است. با دستور "git add"، میتوانید فایلهای تغییر یافته را به محیط Staging اضافه کنید. سپس با دستور "git commit"، تغییرات Staged به عنوان یک commit جدید ثبت میشوند. دستور stash نیز برای ذخیره تغییرات موقتاً و به موقعیت پاکت (stash) استفاده میشود. زمانی که تغییراتی در محیط کاری دارید و میخواهید به شاخه فعلی یا شاخه دیگری تغییر کنید، اما نمیخواهید تغییرات فعلی را commit کنید یا از دست بدهید، میتوانید از دستور stash استفاده کنید.
در Git، مفهوم Snapshot به معنای تصویری کامل از وضعیت پروژه در یک زمان خاص است. وقتی شما یک commit در Git ایجاد میکنید، یک Snapshot از تمام فایلها و حالت آنها در آن لحظه ذخیره میشود.