متن خبر

برگه تقلب Git – دستورات مفید Git با مثال

برگه تقلب Git – دستورات مفید Git با مثال

شناسهٔ خبر: 704784 -




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

همچنین می توانید با پیوستن به خبرنامه من در flaviocopes.com/access، برگه تقلب Git را در قالب PDF (به همراه برخی منابع دیگر) به صورت رایگان دانلود کنید.

فهرست مطالب

پیشگفتار

دستورات اولیه Git

فهرست کاری و منطقه صحنه

کار با شعبه ها

ادغام در Git

کنترل از راه دور Git

تعهدات اصلاحی

ذخیره سازی در Git

Git Tagging

برگرداندن تغییرات در Git

مشاهده گزارش های تاریخچه

Git Diffs

Git Flow

کاوش در منابع Git

نحوه پیکربندی Git

Git Security

نحوه تنظیم نام مستعار در Git

Rebasing در Git

چیدن گیلاس چیست؟

پچ در Git

تاریخ های نسبی در Git

Git Blame

بایگانی در Git

نحوه ردیابی فایل ها در Git

دستکاری شاخص در Git

له کردن در گیت

یکپارچگی داده در Git

پاکسازی در Git

Git Subtree

نحوه جستجو در Git

دو نیم کردن در Git

Git Attributes

Git Checkout

Git Reflog

نحوه مدیریت فایل های ردیابی نشده در Git

فشار اجباری در Git

Git Fetching و کشیدن

نحوه مدیریت تضادهای ادغام در Git

درختان کار در Git

زیر ماژول ها در Git

پیشگفتار

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

این برگه تقلب به گونه ای طراحی شده است که منبع اصلی شما باشد، چه در حال مدیریت یک پروژه انفرادی یا همکاری در یک تیم بزرگ باشید. با ارائه توضیحات واضح و مثال‌های عملی، باید پیچیدگی‌های Git را رمزگشایی کرد و آن‌ها را به بینش‌های بصری و عملی تبدیل کرد.

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

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

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

پیش نیازها

برای بهره مندی کامل از این برگه تقلب، باید دانش پایه ای از عملیات خط فرمان و اصول کلی برنامه نویسی داشته باشید. همچنین باید با استفاده از ترمینال یا خط فرمان آشنا باشید تا بتوانید مثال های ارائه شده را بهتر درک کرده و به کار ببرید. در نهایت، داشتن درک اولیه از مفاهیم کنترل نسخه، توانایی شما را برای پیمایش موثر در این راهنما افزایش می دهد.

دستورات اولیه Git

در این بخش، دستورات اساسی Git را یاد می گیرید که به عنوان بلوک های سازنده برای مدیریت و پیمایش موثر مخازن Git شما عمل می کنند.

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

ما دستورات مختلفی را تحلیل خواهیم کرد که جنبه‌های کلیدی استفاده از Git را پوشش می‌دهند، مانند مقداردهی اولیه مخازن جدید، انجام تغییرات، شاخه‌بندی و ادغام.

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

git help

دستور git help اطلاعات راهنمای Git را چاپ می کند. این یک مرجع سریع به استفاده اولیه Git و متداول ترین دستورات Git است. این دستور زمانی مفید است که به یک یادآوری سریع از عملکرد Git نیاز دارید یا می خواهید دستورات موجود را کاوش کنید.

همچنین می توانید از git help <command> برای نمایش اطلاعات راهنما برای هر دستور خاص Git استفاده کنید. به عنوان مثال، git help git راهنمای Git را به طور خاص برای خود دستور Git چاپ می کند.

این دستورات راهنما منابع ارزشمندی برای کاربران مبتدی و با تجربه هستند تا به سرعت به اطلاعات مربوط به ویژگی‌ها و کاربرد Git دسترسی پیدا کنند.

git version

دستور git version نسخه Git نصب شده روی سیستم شما را نمایش می دهد. این دستور برای تأیید نسخه Git که در حال حاضر استفاده می کنید مفید است، که می تواند برای سازگاری با ویژگی های خاص یا هنگام عیب یابی مشکلات مهم باشد.

git init

دستور git init برای مقداردهی اولیه یک مخزن جدید Git در فهرست فعلی استفاده می شود. این دستور یک زیرشاخه جدید به نام .git ایجاد می کند که حاوی تمام ابرداده های لازم برای مخزن جدید است. این معمولاً اولین دستوری است که هنگام شروع پروژه جدیدی که می خواهید با Git مدیریت کنید اجرا می کنید.

پس از اجرای این دستور، می‌توانید ردیابی فایل‌ها و انجام تعهدات را در مخزن جدید Git خود شروع کنید.

git clone <repository_url>

دستور git clone <repository_url> یک کپی از مخزن Git راه دور در ماشین محلی شما ایجاد می کند. تمام فایل‌ها، شاخه‌ها و تاریخچه commit را دانلود می‌کند و به شما امکان می‌دهد فوراً کار با پروژه را شروع کنید.

git status

دستور git status وضعیت فعلی دایرکتوری کاری مخزن Git و ناحیه مرحله بندی را نشان می دهد. اطلاعاتی را در مورد اینکه کدام فایل ها اصلاح، اضافه یا حذف شده اند و اینکه آیا این تغییرات برای commit بعدی مرحله بندی شده اند را نمایش می دهد.

فهرست کاری و منطقه صحنه

دایرکتوری کاری و ناحیه مرحله بندی مفاهیم اساسی در Git هستند که نقش مهمی در فرآیند کنترل نسخه دارند.

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

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

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

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

git checkout .

این دستور همه تغییرات در دایرکتوری کاری را حذف می‌کند و فایل‌ها را به آخرین وضعیت متعهد خود برمی‌گرداند. این دستور برای بازگرداندن سریع تغییرات محلی و بازگرداندن دایرکتوری کاری به حالت تمیز مفید است.

git reset -p

این دستور به شما این امکان را می دهد که به صورت تعاملی تغییرات را در دایرکتوری کاری بازنشانی کنید. این روشی را برای لغو انتخابی اصلاحات فراهم می کند و به شما کنترل دقیقی بر روی اینکه کدام تغییرات را حفظ کنید یا صرف نظر کنید، ارائه می دهد.

git add <file>

این دستور یک فایل خاص را به ناحیه مرحله بندی در Git اضافه می کند. این کار فایل را برای گنجاندن در commit بعدی آماده می‌کند و به شما این امکان را می‌دهد تا به طور انتخابی انتخاب کنید که کدام تغییرات را در تاریخچه نسخه خود وارد کنید.

git add -p

به شما این امکان را می دهد که تغییرات را به صورت تعاملی از فهرست کاری خود با تقسیم کردن آنها به تکه ها (hunks) مرحله بندی کنید. این به شما امکان می‌دهد قبل از انجام، قسمت‌هایی از تغییرات را به فهرست تحلیل کرده و به‌طور انتخابی اضافه کنید.

git add -i

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

git rm <file>

یک فایل را از پوشه کاری حذف می کند و مرحله حذف را انجام می دهد.

git rm --cached <file>

فایل مشخص شده را از ناحیه مرحله بندی (شاخص) حذف می کند اما آن را دست نخورده در فهرست کاری شما باقی می گذارد. این به طور موثر فایل را از کنترل نسخه حذف می کند.

git mv <old_path> <new_path>

این دستور برای انتقال یا تغییر نام یک فایل یا دایرکتوری در یک مخزن Git استفاده می شود. به طور خودکار تغییرات را مرحله بندی می کند و آن را برای commit بعدی آماده می کند.

git commit -m "message"

این دستور برای ایجاد یک commit جدید در مخزن Git شما استفاده می شود. تغییرات ایجاد شده (به فهرست اضافه شده) را به همراه یک پیام توصیفی ذخیره می کند. این پیام باید به طور خلاصه توضیح دهد که چه تغییراتی در این commit ایجاد شده است.

کار با شعبه ها

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

هر شعبه می تواند تاریخچه commit خاص خود را داشته باشد و تغییرات ایجاد شده در یک شاخه تا زمانی که ادغام نشوند بر روی سایر شاخه ها تأثیر نمی گذارد. این به شما کمک می کند تا کار خود را سازماندهی کنید، و همکاری را با امکان دادن به چندین توسعه دهنده برای کار همزمان روی جنبه های مختلف یک پروژه بدون دخالت در پیشرفت یکدیگر تسهیل می کند.

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

git branch <branch_name>

یک شاخه جدید ایجاد می کند.

git checkout <branch_name>

به شاخه مشخص شده سوئیچ می کند و دایرکتوری کاری را به روز می کند.

git branch

همه شاخه ها را فهرست می کند.

git branch -d <branch_name>

یک شاخه را حذف می کند.

git push --delete <remote> <branch>

یک شاخه راه دور را حذف می کند.

git branch -m <old_name> <new_name>

یک شاخه را تغییر نام می دهد.

git checkout -b <new_branch>

یک شاخه جدید به نام <new_branch> را ایجاد می کند و بر اساس شاخه فعلی تغییر می کند.

git switch <branch>

دایرکتوری کاری را به شاخه مشخص شده سوئیچ می کند.

git show-branch <branch>

خلاصه‌ای از تاریخچه ارتکاب و روابط شاخه‌ها را برای همه یا شاخه‌های انتخابی نشان می‌دهد و نشان می‌دهد که هر شاخه در کجا از هم جدا شده است.

git show-branch --all

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

git branch -r

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

git branch -a

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

git branch --merged

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

git branch --no-merged

همه شاخه هایی را که به طور کامل در شاخه فعلی شما ادغام نشده اند فهرست می کند و شاخه هایی را با تغییراتی نشان می دهد که هنوز یکپارچه نشده اند.

ادغام در Git

دستور git merge برای ترکیب تغییرات از یک شاخه به شاخه دیگر استفاده می شود. تاریخچه هر دو شاخه را ادغام می کند و یک تعهد جدید ایجاد می کند که شامل تغییرات هر دو منبع است.

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

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

git merge <branch>

تغییرات را از شاخه مشخص شده در شاخه فعلی شما ادغام می کند و تاریخچه آنها را ترکیب می کند.

git merge --no-ff <branch>

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

git merge --squash <branch>

تمام تغییرات را از شاخه مشخص شده در یک commit ترکیب می کند و تغییرات را برای یک commit در شاخه فعلی بدون ادغام تاریخچه شاخه آماده می کند. این به شما امکان می دهد پیام commit را به صورت دستی ویرایش کنید.

git merge --abort

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

git merge -s ours <branch> or

git merge —-strategy=ours <branch>

این دستورات از نظر عملکردی یکسان هستند، اما دومی نسخه گسترش یافته (صریح تر) است، در حالی که git merge -s ours <branch> نسخه مختصر است (که معمولاً استفاده می شود). این را چند بار در طول این راهنما خواهید دید.

دستور git merge —-strategy=ours <branch> (به اختصار git merge -s ours <branch> ) یک ادغام را با استفاده از استراتژی "ours" انجام می دهد که تغییرات شاخه فعلی را حفظ می کند و تغییرات را از شاخه مشخص شده حذف می کند. این به طور موثر تاریخ ها را بدون ادغام تغییرات از شاخه دیگر ادغام می کند.

git merge --strategy=theirs <branch>

شاخه مشخص شده را با استفاده از استراتژی "آنها" در شعبه فعلی ادغام می کند، که همه تضادها را با حمایت از تغییرات از شاخه در حال ادغام حل می کند. توجه داشته باشید که استراتژی «آنها» یک استراتژی داخلی نیست و معمولاً نیاز به اسکریپت سفارشی دارد یا با ابزارهایی برای حل تعارض استفاده می شود.

کنترل از راه دور Git

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

عملیات متداول با ریموت ها شامل git fetch برای بازیابی به روز رسانی ها، git pull برای واکشی و ادغام تغییرات و git push برای آپلود commit های محلی در مخزن راه دور است.

مدیریت ریموت ها شامل گفت ن، حذف و تغییر نام اتصالات راه دور و همچنین پیکربندی URL ها برای همکاری یکپارچه است.

git fetch

تغییرات را از یک مخزن راه دور واکشی می کند اما آنها را در شاخه فعلی شما ادغام نمی کند.

git pull

تغییرات را از یک مخزن راه دور واکشی می کند و بلافاصله آنها را در شاخه فعلی شما ادغام می کند.

git push

تغییرات شعبه محلی شما را در یک مخزن راه دور آپلود می کند.

git remote

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

git remote -v

نشانی‌های اینترنتی مخازن راه دور مرتبط با مخزن محلی شما را نشان می‌دهد و نشانی‌های اینترنتی واکشی شده و ارسال‌شده را نشان می‌دهد.

git remote add <name> <url>

یک مخزن راه دور جدید با نام و URL مشخص شده به پیکربندی مخزن محلی شما اضافه می کند.

git remote remove <name> یا

git remote rm <name>

اتصال مخزن راه دور مشخص شده را از پیکربندی git محلی شما حذف می کند. git remote rm <name> نسخه مختصر دستور است.

git remote rename <old_name> <new_name>

نام یک اتصال مخزن راه دور موجود را در پیکربندی Git محلی شما تغییر می دهد

git remote set-url <name> <newurl>

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

git fetch <remote>

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

git pull <remote>

تغییرات را از مخزن راه دور مشخص شده واکشی می کند و آنها را در شاخه فعلی شما ادغام می کند.

git remote update

به‌روزرسانی‌ها را برای همه ریموت‌های ردیابی شده توسط مخزن واکشی می‌کند.

git push <remote> <branch>

شاخه مشخص شده را از مخزن محلی شما در مخزن راه دور داده شده آپلود می کند.

git push <remote> --delete <branch>

شاخه مشخص شده را از مخزن راه دور حذف می کند.

git remote show <remote>

اطلاعات دقیق در مورد مخزن از راه دور مشخص شده، از جمله URL، تنظیمات واکشی و فشار، و شاخه هایی که ردیابی می کند را نمایش می دهد.

git ls-remote <repository>

ارجاعات (مانند شاخه ها و برچسب ها) و شناسه های تعهد آنها را از مخزن راه دور مشخص شده فهرست می کند. این دستور به شما اجازه می دهد تا شاخه ها و برچسب های موجود در یک مخزن راه دور را بدون شبیه سازی آن مشاهده کنید.

git push origin <branch> --set-upstream

شاخه محلی <branch> را به منبع مخزن راه دور فشار می دهد و شعبه محلی را برای ردیابی شعبه راه دور راه اندازی می کند. این به git آینده اجازه می دهد تا دستورات git pull را به طور پیش فرض در این شاخه راه دور فشار دهد.

git remote add upstream <repository>

یک کنترل از راه دور جدید به نام upstream به مخزن محلی شما اضافه می کند و به <repository> مشخص شده اشاره می کند. این معمولاً برای ردیابی مخزن اصلی که از آن جدا شده‌اید استفاده می‌شود، در حالی که مبدا معمولاً به چنگال خودتان اشاره دارد.

git fetch upstream

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

git pull upstream <branch>

به روز رسانی ها را از <branch> مخزن راه دور بالادستی واکشی می کند و آن تغییرات را در شاخه فعلی شما ادغام می کند. این اغلب برای ادغام تغییرات از مخزن اصلی در شعبه محلی خود استفاده می شود.

git push origin <branch>

شعبه محلی <branch> را در مخزن راه دور مبدا آپلود می کند و شعبه شما و تعهدات آن را در کنترل از راه دور در دسترس قرار می دهد.

تعهدات اصلاحی

اصلاح تعهدات Git به شما امکان می دهد جدیدترین commit را تغییر دهید، معمولاً برای اصلاح یا به روز رسانی محتوا یا پیام آن. می توانید این کار را با استفاده از دستور git commit --amend انجام دهید که commit را در ویرایشگر متن پیش فرض شما برای تغییرات باز می کند.

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

git commit --amend

آخرین commit را با ترکیب تغییرات مرحله‌ای اصلاح می‌کند.

git commit --amend -m "new message"

پیام commit آخرین commit را اصلاح می کند.

git commit --fixup=HEAD

یک commit جدید با گزینه --fixup ایجاد می کند که برای تصحیح یا اصلاح آخرین commit (HEAD) در نظر گرفته شده است. کامیت جدید با fixup! پیشوند در پیام commit قرار می گیرد و برای اصلاح یا اصلاح خودکار commit مشخص شده در طول یک rebase تعاملی استفاده می شود.

ذخیره سازی در Git

Git stashing قابلیتی است که به شما امکان می دهد تغییراتی را که هنوز آماده اجرای آن نیستند به طور موقت در فهرست کاری خود ذخیره کنید.

با استفاده از دستور git stash، می‌توانید این تغییرات را کنار بگذارید و دایرکتوری کاری خود را به حالت تمیز بازگردانید و به شما امکان می‌دهد بدون از دست دادن پیشرفت، شاخه‌ها را تغییر دهید یا کارهای دیگر را انجام دهید. بعداً، می‌توانید با git stash application یا git stash pop تغییرات مخفی‌شده را مجدداً اعمال کنید و به شما امکان می‌دهد از جایی که متوقف کرده‌اید ادامه دهید.

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

git stash

تغییرات غیرمتعهد شما را به طور موقت ذخیره می کند و به شما امکان می دهد بدون انجام کار ناقص شاخه ها را تغییر دهید یا سایر عملیات را انجام دهید.

یک نسخه قدیمی تر، git stash save وجود دارد که به شما امکان می دهد یک پیام سفارشی را مشخص کنید. اما تا حد زیادی به نفع git stash ساده تر منسوخ شده است.

git stash -m "message"

مانند بالا، اما تغییرات را با یک پیام ذخیره می کند. همچنین نسخه قدیمی‌تری دارد، git stash save "message" ، اما git stash -m "message" برای نسخه‌های Git 2.13 و جدیدتر ترجیح داده می‌شود.

git stash show

خلاصه ای از تغییرات آخرین ورودی ذخیره را نمایش می دهد که نشان می دهد کدام فایل ها اصلاح شده اند.

git stash list

تمام تغییرات ذخیره شده در مخزن شما را نشان می دهد و آنها را در یک فهرست شماره گذاری شده نمایش می دهد.

git stash pop

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

git stash drop

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

git stash apply

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

git stash clear

تمام ورودی‌های ذخیره‌شده را پاک و حذف می‌کند، و همه تغییرات ذخیره‌شده را برای همیشه حذف می‌کند.

git stash branch <branch>

یک شعبه جدید به نام <branch> از commit که قبل از پنهان کردن تغییرات خود در آن بودید ایجاد می کند. سپس تغییرات ذخیره شده را در آن شاخه جدید اعمال می کند.

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

Git Tagging

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

بر خلاف شاخه ها، تگ ها معمولا تغییر ناپذیر هستند و تغییر نمی کنند و به عنوان یک مرجع دائمی برای یک commit خاص عمل می کنند.

دو نوع تگ در Git وجود دارد: تگ های سبک وزن که نشانگرهای ساده ای برای یک commit هستند و تگ های حاشیه نویسی که ابرداده های اضافی مانند نام برچسب، ایمیل، تاریخ و یک پیام را ذخیره می کنند.

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

git tag <tag_name>

یک تگ جدید با نام مشخص شده ایجاد می کند که به commit فعلی اشاره می کند (معمولاً برای علامت گذاری نقاط خاصی در تاریخچه commit مانند نسخه ها استفاده می شود).

git tag -a <tag_name> -m "message"

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

git tag -d <tag_name>

تگ مشخص شده را از مخزن محلی شما حذف می کند.

git tag -f <tag> <commit>

یک برچسب را مجبور می کند تا به یک commit دیگر اشاره کند.

git show <tag_name>

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

git push origin <tag_name>

تگ مشخص شده را در مخزن راه دور آپلود می کند و آن را در دسترس دیگران قرار می دهد.

git push origin --tags

تمام تگ های محلی را به مخزن راه دور فشار می دهد و اطمینان حاصل می کند که همه برچسب ها با کنترل از راه دور همگام هستند.

git push --follow-tags

هم commit ها و هم برچسب ها را فشار می دهد.

git fetch --tags

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

برگرداندن تغییرات در Git

بازگرداندن تغییرات در Git شامل لغو تغییرات ایجاد شده در تاریخچه یک مخزن است. می توانید این کار را با استفاده از چندین دستور مانند git revert انجام دهید. این یک commit جدید ایجاد می کند که تغییرات یک commit قبلی مشخص شده را نفی می کند، و در عین حال اثرات آن را معکوس می کند و در عین حال تاریخچه commit را حفظ می کند.

روش دیگر استفاده از git reset است که HEAD فعلی را به یک commit مشخص تغییر می‌دهد و می‌تواند ناحیه مرحله‌بندی و فهرست کاری را بسته به گزینه‌های انتخابی ( --soft ، --mixed ، یا --hard ) به‌روزرسانی کند.

همچنین می‌توانید از git checkout برای حذف تغییرات در دایرکتوری کاری استفاده کنید و فایل‌ها را در آخرین commit به حالت خود برگردانید.

این ابزارها انعطاف‌پذیری را در مدیریت و اصلاح تغییرات فراهم می‌کنند و اطمینان می‌دهند که مخزن دقیق و تمیز باقی می‌ماند.

git checkout -- <file>

تغییرات فایل مشخص شده را از دایرکتوری کاری حذف می کند، آن را به وضعیت آخرین commit برمی گرداند و عملاً هرگونه تغییری را که مرحله بندی نشده است لغو می کند.

git revert <commit>

یک commit جدید ایجاد می کند که تغییرات در commit مشخص شده را خنثی می کند و با حفظ تاریخچه اثرات آن را به طور موثر معکوس می کند.

git revert -n <commit>

یک commit را برمی گرداند اما نتیجه را انجام نمی دهد.

git reset

HEAD فعلی را به حالت مشخص بازنشانی می‌کند، و بسته به گزینه‌های مورد استفاده ( --soft ، --mixed ، یا --hard ) به‌صورت اختیاری، ناحیه مرحله‌بندی و فهرست کار را به‌روزرسانی می‌کند.

git reset --soft <commit>

HEAD را به commit مشخص شده منتقل می‌کند، در حالی که فهرست (منطقه مرحله‌بندی) و دایرکتوری کار را بدون تغییر نگه می‌دارد، پس همه تغییرات بعد از commit مشخص شده برای commit کردن، مرحله‌بندی می‌شوند. این زمانی مفید است که می‌خواهید commit‌ها را لغو کنید، اما تغییرات را برای انجام مجدد آماده نگه دارید.

git reset --mixed <commit>

HEAD را به commit مشخص شده منتقل می کند و ایندکس (منطقه مرحله بندی) را برای مطابقت با آن commit به روز می کند. اما دایرکتوری کاری را بدون تغییر باقی می‌گذارد، پس تغییرات پس از commit مشخص شده حفظ می‌شود اما ردیابی نمی‌شود.

git reset --hard <commit>

HEAD را به commit مشخص شده منتقل می کند و فهرست (منطقه مرحله بندی) و فهرست کاری را برای مطابقت با آن commit به روز می کند. تمام تغییرات و فایل های ردیابی نشده را پس از commit مشخص شده حذف می کند.

مشاهده گزارش های تاریخچه

تاریخچه Git به رکورد تمام تغییرات ایجاد شده در یک مخزن در طول زمان اشاره دارد. این شامل یک توالی زمانی از تعهدات است که هر کدام نمایانگر یک عکس فوری از مخزن در یک نقطه خاص است.

این تاریخچه به شما امکان می دهد تغییرات را ردیابی کنید، تکامل پایگاه کد را درک کنید، و با ارائه یک گزارش دقیق از افرادی که، چه زمانی و چرا تغییرات را انجام داده اند، به طور مؤثر همکاری کنید.

ابزارهایی مانند git log به شما کمک می کند تا در این تاریخچه پیمایش کنید، بینش هایی را در مورد فرآیند توسعه ارائه می دهد و به اشکال زدایی و مدیریت پروژه کمک می کند.

git log

گزارش commits را نمایش می دهد.

git log --oneline

خلاصه ای از commit ها را با یک خط نمایش می دهد.

git log --graph

یک نمایش گرافیکی از تاریخچه commit را نشان می دهد.

git log --stat

نمایش آمار فایل به همراه تاریخچه commit.

git log --pretty=format:"%h %s"

خروجی گزارش را با توجه به فرمت مشخص شده قالب بندی می کند.

git log --pretty=format:"%h - %an, %ar : %s"

یک قالب قابل خواندن توسط انسان برای سیاههها ارائه می دهد.

git log --author=<author>

تعهدات انجام شده توسط نویسنده مشخص شده را نشان می دهد.

git log --before=<date>

تعهدات انجام شده قبل از تاریخ مشخص شده را نشان می دهد.

git log --after=<date>

commit های انجام شده بعد از تاریخ مشخص شده را نشان می دهد (همانند git log --since=<date> )

git log --cherry-pick

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

git log --follow <file>

تعهدات یک فایل، از جمله تغییر نام را نشان می دهد.

git log --show-signature

اطلاعات امضای GPG را برای commit ها نمایش می دهد.

git shortlog

خروجی git log توسط نویسنده را خلاصه می کند.

git shortlog -sn

خروجی git log توسط نویسنده را با تعداد commit خلاصه می کند.

git log --simplify-by-decoration

فقط commit هایی را نشان می دهد که توسط برچسب ها یا شاخه ها ارجاع می شوند.

git log --no-merges

commit های ادغام را از لاگ حذف می کند.

git whatchanged

فهرست ها داده های commit را در قالبی شبیه به گزارش commit می کنند.

git diff-tree --pretty --name-only --root <commit>

اطلاعات دقیق یک درخت commit را نشان می دهد.

git log --first-parent

فقط تعهدات شاخه فعلی را نشان می دهد و موارد ادغام شده از شاخه های دیگر را حذف می کند.

Git Diffs

Git diffs یک ویژگی در Git است که به شما امکان می دهد تفاوت بین حالت های مختلف را در مخزن خود مشاهده کنید. این می‌تواند شامل تفاوت‌هایی بین فهرست کاری شما و ناحیه مرحله‌بندی، بین ناحیه مرحله‌بندی و آخرین کامیت یا بین هر دو commit یا شاخه باشد.

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

git diff

تفاوت‌های بین حالت‌های مختلف در مخزن شما، مانند بین فهرست کاری و فهرست (منطقه مرحله‌بندی)، بین فهرست و آخرین commit یا بین دو commit را نشان می‌دهد. این تغییرات را خط به خط در فایل‌ها نمایش می‌دهد و به شما کمک می‌کند تا تغییرات را قبل از انجام یا ادغام مرور کنید.

git diff --stat

خلاصه ای از تغییرات بین فهرست کاری شما و فهرست (منطقه مرحله بندی) را نشان می دهد، به شما کمک می کند ببینید چه فایل هایی اصلاح شده اند و چند خط اضافه یا حذف شده اند.

git diff --stat <commit>

تغییرات بین یک commit و دایرکتوری کاری را مشاهده می کند.

git diff --stat <commit1> <commit2>

خلاصه ای از تغییرات بین دو commit را ارائه می دهد که نشان می دهد کدام فایل ها تغییر کرده اند و میزان تغییرات بین آنها.

git diff --stat <branch1> <branch2>

تفاوت‌های بین دو شاخه را خلاصه می‌کند و فایل‌های تغییر یافته و میزان تغییرات را نشان می‌دهد.

git diff --name-only <commit>

فقط نام فایل هایی را نشان می دهد که در commit مشخص شده تغییر کرده اند.

git diff --cached

تفاوت بین تغییرات مرحله‌ای (شاخص) و آخرین commit را نشان می‌دهد و به شما کمک می‌کند آنچه را که در commit بعدی گنجانده می‌شود تحلیل کنید.

git diff HEAD

تفاوت بین دایرکتوری کاری و آخرین commit (HEAD) را نشان می دهد و به شما امکان می دهد ببینید از آخرین commit چه تغییراتی ایجاد شده است.

git diff <branch1> <branch2>

تفاوت بین نوک دو شاخه را نشان می دهد و تغییرات بین commit ها را در انتهای هر شاخه برجسته می کند.

git difftool

یک ابزار تفاوت را برای مقایسه تغییرات راه اندازی می کند.

git difftool <commit1> <commit2>

از ابزار diff برای نشان دادن تفاوت بین دو commit مشخص شده استفاده می کند.

git difftool <branch1> <branch2>

ابزار diff را برای مقایسه تغییرات بین دو شاخه باز می کند.

git cherry <branch>

commit های شاخه فعلی شما را با شاخه دیگری مقایسه می کند و نشان می دهد که کدام commit برای هر شاخه منحصر به فرد است. معمولاً برای تشخیص اینکه کدام تعهدات در یک شاخه در شاخه دیگر اعمال نشده اند استفاده می شود.

Git Flow

Git Flow یک مدل انشعاب برای Git است که چارچوبی قوی برای مدیریت پروژه های بزرگتر ارائه می دهد. این یک استراتژی انشعاب دقیق را تعریف می کند که در اطراف چرخه انتشار پروژه طراحی شده است، با دو شاخه اصلی (اصلی و توسعه) و شاخه های پشتیبانی کننده برای ویژگی ها، نسخه ها و رفع فوری.

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

git flow init

یک مخزن برای یک مدل شاخه‌بندی جریان git راه‌اندازی می‌کند.

git flow feature start <feature>

یک شاخه ویژگی جدید در git-flow راه اندازی می کند.

git flow feature finish <feature>

یک شاخه ویژگی را در جریان git تمام می کند.

کاوش در منابع Git

ارجاعات Git که اغلب به آنها ref می گویند، نشانگرهایی به commit یا اشیاء خاص در یک مخزن Git هستند. اینها می‌توانند شامل شاخه‌ها، تگ‌ها و سایر مراجع مانند HEAD باشند که به commit فعلی در فهرست کاری شما اشاره می‌کند.

از مراجع برای پیگیری ساختار و تاریخچه مخزن استفاده می شود. آن‌ها به Git کمک می‌کنند تا نقاط مختلف را در جدول زمانی پروژه به‌طور مؤثر مدیریت و پیمایش کند.

Refs همچنین راهی برای نام‌گذاری و ارجاع به تعهدات خاص ارائه می‌کند که کار با تاریخچه مخزن و دستکاری آن را آسان‌تر می‌کند.

git show-ref --heads

فهرست ارجاع به همه سرها (شاخه ها).

git show-ref --tags

ارجاع به همه برچسب ها را فهرست می کند.

نحوه پیکربندی Git

پیکربندی Git شامل تنظیم گزینه ها و ترجیحات مختلفی است که رفتار محیط Git شما را کنترل می کند. این می‌تواند شامل تعیین نام کاربری و ایمیل، تنظیم ویرایشگرهای متن پیش‌فرض، ایجاد نام مستعار برای دستورات رایج و پیکربندی فایل‌های نادیده‌گیری جهانی باشد.

شما می‌توانید تنظیمات پیکربندی را در سطوح مختلف اعمال کنید: سراسری (بر همه مخازن سیستم شما تأثیر می‌گذارد)، محلی (بر روی یک مخزن واحد تأثیر می‌گذارد) و در کل سیستم. این تنظیمات یک تجربه کاربری سفارشی و منسجم را تضمین می‌کند، گردش کار را ساده می‌کند و کارایی کلی عملیات کنترل نسخه را افزایش می‌دهد.

git config --global user.name "Your Name"

نام کاربری را در سطح جهانی تنظیم می کند.

git config --global user.email "your_email@example.com"

ایمیل کاربر را در سطح جهانی تنظیم می کند.

git config --global core.editor <editor>

ویرایشگر متن پیش فرض را تنظیم می کند.

git config --global core.excludesfile <file>

فایل نادیده گرفتن جهانی را تنظیم می کند.

git config --list

تمام تنظیمات پیکربندی را فهرست می کند.

git config --list --show-origin

همه متغیرهای پیکربندی را فهرست می‌کند و منشأ آنها را نشان می‌دهد.

git config <key>

مقدار کلید مشخص شده را بازیابی می کند.

git config --get <key>

مقدار کلید پیکربندی مشخص شده را بازیابی می کند.

git config --unset <key>

کلید پیکربندی مشخص شده را حذف می کند.

git config --global --unset <key>

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

Git Security

امنیت Git GPG شامل استفاده از GNU Privacy Guard (GPG) برای امضای commit ها و برچسب ها می شود و از صحت و یکپارچگی آنها اطمینان می یابد. با پیکربندی یک کلید GPG و فعال کردن امضای خودکار، می توانید تأیید کنید که commit ها و برچسب ها توسط یک منبع قابل اعتماد ایجاد شده اند. این به جلوگیری از دستکاری کمک می کند و یکپارچگی تاریخچه مخزن را تضمین می کند.

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

git config --global user.signingKey <key>

کلید GPG را برای امضای commit ها و برچسب ها پیکربندی می کند.

git config --global commit.gpgSign true

به طور خودکار همه تعهدات را با GPG امضا می کند.

نحوه تنظیم نام مستعار در Git

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

با پیکربندی نام مستعار در تنظیمات Git خود، می توانید به سرعت دستورات پرکاربرد را با تایپ کمتر اجرا کنید. این نه تنها بهره وری را افزایش می دهد، بلکه احتمال خطا را نیز کاهش می دهد.

به عنوان مثال، می توانید نام مستعاری مانند git st را برای جایگزینی وضعیت git یا git co برای جایگزینی git checkout تنظیم کنید.

شما می توانید نام مستعار را به صورت جهانی برای اعمال در همه مخازن یا به صورت محلی برای پروژه های فردی تعریف کنید و در نحوه ساده سازی عملیات Git خود انعطاف پذیری ایجاد کنید.

git config --global alias.ci commit

git ci را به عنوان نام مستعار برای git commit تنظیم می کند.

git config --global alias.st status

git st را به عنوان نام مستعار برای وضعیت git تنظیم می کند.

git config --global alias.co checkout

git co را به عنوان نام مستعار برای git checkout تنظیم می کند.

git config --global alias.br branch

git br را به عنوان نام مستعار برای شاخه git تنظیم می کند.

git config --global alias.graph "log --graph --all --oneline --decorate"

یک نام مستعار برای نمودار دقیق تاریخچه مخزن ایجاد می کند.

Rebasing در Git

Git rebasing تغییرات شما را مجدداً در بالای تاریخچه یک شعبه دیگر اعمال می کند و یک تاریخچه پروژه تمیزتر و خطی تر ایجاد می کند.

در عمل، این به ادغام به‌روزرسانی‌ها با اجتناب از تعهدات ادغام غیرضروری کمک می‌کند، اطمینان حاصل می‌کند که توالی commit ساده است و درک تکامل پروژه را آسان‌تر می‌کند.

git rebase <branch>

دستور git rebase برای اعمال مجدد commit ها در بالای نوک پایه دیگر استفاده می شود. این به شما اجازه می دهد تا دنباله ای از commit ها را به یک کامیت پایه جدید منتقل یا ترکیب کنید. این معمولا برای موارد زیر استفاده می شود:

    تاریخچه پروژه خطی را نگه دارید.

    ادغام تغییرات از یک شاخه به شاخه دیگر.

    یک شاخه ویژگی را با آخرین تغییرات از شاخه اصلی به روز کنید.

استفاده اصلی git rebase <branch> است که شاخه فعلی را به شاخه مشخص شده تغییر می دهد.

git rebase --interactive <branch>

یک جلسه rebase تعاملی را شروع می کند، به شما امکان می دهد commit ها را از <base> تا HEAD فعلی تغییر دهید. این به شما امکان می‌دهد تا commit‌ها را دوباره ترتیب دهید، له کنید، ویرایش کنید یا حذف کنید، و راهی برای پاکسازی و اصلاح تاریخچه commit قبل از اعمال تغییرات فراهم می‌کند. نسخه کوتاهتر: git rebase -i <branch>

git rebase --continue

پس از حل و فصل تضادها، فرآیند rebase را ادامه می دهد.

git rebase --abort

فرآیند rebase را متوقف می کند و به شاخه اصلی باز می گردد.

git fetch --rebase

از مخزن راه دور واکشی می کند و تغییرات محلی را بازپایه می دهد.

چیدن گیلاس چیست؟

Git Cherry-Picking فرایندی است که به شما امکان می دهد تغییرات معرفی شده توسط یک تعهد خاص از یک شاخه را به شاخه دیگر اعمال کنید. این امر به ویژه هنگامی مفید است که می خواهید به طور انتخابی تغییرات فردی را از شاخه های مختلف بدون ادغام کل شاخه درج کنید.

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

git cherry-pick <commit>

تغییرات معرفی شده توسط یک تعهد موجود را اعمال می کند.

git cherry-pick --continue

پس از حل و فصل درگیری ، انتخاب گیلاس را ادامه می دهد.

git cherry-pick --abort

روند انتخاب گیلاس را قطع می کند.

git cherry-pick --no-commit <commit>

گیلاس بدون تعهد به طور خودکار تعهد می کند و اجازه می دهد تا تغییرات بیشتری داشته باشد. نسخه کوتاه تر: git cherry-pick -n <commit>

پچ در گیت

Patching Git روشی است که برای اعمال تغییرات از یک مخزن به دیگری یا از یک شاخه به شاخه دیگر در همان مخزن استفاده می شود. این شامل ایجاد پرونده های پچ است که پرونده های متنی هستند که تفاوت بین تعهدات یا شاخه ها را نشان می دهند. سپس این پرونده های پچ می توانند با استفاده از دستوراتی مانند git apply یا git am در یک مخزن اعمال شوند و این امکان را فراهم می کند که بدون ادغام مستقیم شاخه ها ، تغییراتی منتقل و ادغام شوند.

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

git apply <patch_file>

تغییرات در فهرست کار از یک فایل پچ اعمال می شود.

git apply --check

تحلیل می کند که آیا می توان تکه ها را به صورت تمیز استفاده کرد.

git format-patch <since_commit>

از زمان تعهد مشخص شده ، پرونده های پچ را برای هر تعهد ایجاد می کند.

git am <patch_file>

تکه های صندوق پستی را اعمال می کند.

git am --continue

پس از حل و فصل درگیری ، به استفاده از تکه ها ادامه می دهد.

git am --abort

روند درخواست پچ را قطع می کند.

git diff > <file.patch>

یک فایل پچ را از تفاوت ها ایجاد می کند.

تاریخ نسبی در git

تاریخ های نسبی GIT به کاربران امکان می دهد تا با استفاده از عبارات زمانی قابل خواندن انسانی ، به نکات خاص در تاریخ مخزن مراجعه کنند. به عنوان مثال ، دستوراتی مانند main{1.week.ago} یا @{3.days.ago} شما را قادر می سازد تا به حالت یک شعبه دسترسی پیدا کنید یا تغییرات ایجاد شده از یک دوره زمانی خاص نسبت به تاریخ فعلی را مشاهده کنید.

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

git show main@{1.week.ago}

به شما اجازه می دهد یک هفته پیش وضعیت شعبه اصلی خود را ببینید.

git diff @{3.days.ago}

نشان می دهد که در 3 روز گذشته چه تغییراتی ایجاد کرده اید.

git checkout main@{2.weeks.ago}

مخزن خود را مانند 2 هفته پیش تحلیل می کند.

git log @{1.month.ago}..HEAD

ورود به سیستم تعهدات را از 1 ماه پیش تا الان به شما نشان می دهد.

@{2024-06-01}

@{yesterday}

@{"1 week 2 days ago"}

سایر نمونه های استفاده

تقصیر گیت

سرزنش Git یک ویژگی در GIT است که آخرین اصلاح شده در هر خط از یک پرونده را مشخص می کند و تغییرات را به تعهدات خاص و نویسندگان نسبت می دهد. شما می توانید این کار را با استفاده از دستور git blame انجام دهید ، که حاشیه نویسی مفصلی از پرونده را ارائه می دهد و نشان می دهد چه کسی تغییراتی ایجاد کرده و چه زمانی ساخته شده است.

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

با اشاره به تعهد دقیق و نویسنده مسئول هر خط ، توسعه دهندگان می توانند بینش در مورد روند توسعه کسب کنند و همکاری و پاسخگویی بهتر را در یک تیم تسهیل کنند.

git blame <file>

آخرین اصلاح برای هر خط از یک پرونده را نشان می دهد.

git blame <file> -L <start>,<end>

خروجی سرزنش را به محدوده خط مشخص محدود می کند.

git blame <file> <commit>

اطلاعات سرزنش را تا تعهد مشخص شده نشان می دهد.

git blame <file> -C -C

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

گزینه -C خطوط منتقل شده یا کپی شده در همان پرونده را تشخیص می دهد. استفاده از آن یک بار ( -C ) خطوط منتقل شده یا کپی شده در همان پرونده را تشخیص می دهد. استفاده از گزینه -C دو بار ( -C -C ) باعث می شود پرونده های اصلاح نشده به عنوان کاندیدای منبع کپی بازرسی کنند. این بدان معنی است که سعی خواهد کرد منشأ خطوط کپی شده را نه تنها در همان پرونده بلکه در پرونده های دیگر نیز پیدا کند.

git blame <file> --reverse

به عقب کار می کند ، نشان می دهد چه کسی آخرین خط را در پرونده مشخص شده تغییر داده است.

git blame <file> --first-parent

نشان می دهد که اخیراً هر خط را در یک پرونده اصلاح کرده اند و فقط اولین والدین را برای تغییر ادغام متعهد می کنند.

بایگانی در گیت

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

دستور بایگانی GIT به طور معمول برای این منظور استفاده می شود و یک روش مناسب برای صادرات وضعیت فعلی پروژه به یک قالب قابل حمل فراهم می کند.

git archive <format> <tree-ish>

یک فایل بایگانی (به عنوان مثال ، یک پرونده .tar یا .zip) حاوی محتویات درخت مشخص شده درخت (مانند تعهد ، شاخه یا برچسب) در قالب داده شده ایجاد می کند. به عنوان مثال:

git archive --format=tar HEAD یک بایگانی .tar از تعهد فعلی (سر) ایجاد می کند.

git archive --format=zip v1.0 یک بایگانی .zip از پرونده ها را در برچسب v1.0 ایجاد می کند.

این دستور برای بسته بندی عکس فوری از مخزن شما در یک نقطه خاص از زمان مفید است.

نحوه ردیابی پرونده ها در GIT

ردیابی GIT به روند نظارت و مدیریت پرونده ها در یک مخزن اشاره دارد.

Command git ls-files تمام پرونده هایی را که توسط GIT ردیابی می شوند ، فهرست می کند و نمای روشنی از پرونده هایی که در حال حاضر تحت کنترل نسخه هستند ، ارائه می دهد. از طرف دیگر ، git ls-tree <branch> محتویات یک شیء درخت را برای یک شاخه مشخص نشان می دهد ، ساختار و پرونده ها را در آن نقطه در مخزن نشان می دهد.

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

git ls-files

همه پرونده های ردیابی شده را فهرست می کند.

git ls-tree <branch>

محتویات یک شیء درخت را فهرست می کند.

دستکاری شاخص در git

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

دستورات دستکاری شاخص ، مانند git update-index ، به شما امکان می دهد کنترل کنید که کدام پرونده ها در تعهد بعدی گنجانده شده اند ، انعطاف پذیری در دستیابی به تغییرات و بهینه سازی گردش کار برای کارهای خاص را فراهم می کنند.

git update-index --assume-unchanged <file>

پرونده را به عنوان فرض بدون تغییر نشان می دهد.

git update-index --no-assume-unchanged <file>

یک پرونده را به صورت بدون تغییر فرض کنید.

خرد کردن در گیت

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

اسکواش را می توان با استفاده از دستور تعاملی Rebase ( git rebase -i ) انجام داد ، که به شما امکان می دهد به صورت انتخابی تعهدات را ادغام ، مرتب یا ویرایش کنید. با تعهدات خرد کردن ، می توانید تغییرات اضافی یا جزئی را تثبیت کنید و روایتی واضح تر از روند توسعه ارائه دهید.

git rebase -i HEAD~<n>

اسکواش به طور تعاملی مرتکب می شود.

یکپارچگی داده ها در git

یکپارچگی داده های GIT به مکانیسم ها و فرآیندهای Git برای اطمینان از صحت و سازگاری داده ها در یک مخزن اشاره دارد.

GIT از هش های رمزنگاری (SHA-1 یا SHA-256) برای شناسایی منحصر به فرد اشیاء مانند تعهدات ، درختان و حباب ها استفاده می کند. این هش نه تنها یک شناسه منحصر به فرد برای هر شیء فراهم می کند بلکه تضمین می کند که هرگونه تغییر در محتوای شی منجر به هش متفاوت می شود ، پس هرگونه فساد یا دستکاری را تشخیص می دهد.

می توانید از دستوراتی مانند git fsck برای تأیید اتصال و اعتبار اشیاء در پایگاه داده استفاده کنید و از سلامت کلی و یکپارچگی مخزن اطمینان حاصل کنید.

git fsck

اتصال و اعتبار اشیاء در پایگاه داده را تأیید می کند.

git fsck --unreachable

اشیاء موجود در مخزن را پیدا می کند که از هر مرجع قابل دسترسی نیستند.

git prune

اشیاء غیرقابل دستیابی را از بین می برد.

git gc

یک فرآیند جمع آوری زباله را اجرا می کند.

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

جمع آوری زباله های منظم به مدیریت موثر ذخیره سازی کمک می کند و ساختار مخزن را سازمان یافته نگه می دارد.

تمیز کردن در گیت

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

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

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

git fetch --prune

منابع را حذف می کند که دیگر در ریموت وجود ندارد.

git remote prune <name>

آلو تمام شاخه های ردیابی از راه دور.

git fetch origin --prune

منابع منسوخ شده را از مخزن از راه دور پاک می کند.

git clean -f

پرونده های بدون ردیابی را از فهرست کار حذف می کند و مجبور می شود حذف پرونده ها توسط GIT ردیابی نشود.

git clean -fd

پرونده ها و دایرکتوری های بدون ردیابی را از فهرست کار ، از جمله هر پرونده و دایرکتوری که توسط GIT ردیابی نشده است ، حذف می کند.

git clean -i

برای تمیز کردن پرونده های غیرقابل انکار ، وارد حالت تعاملی می شود.

git clean -X

فقط پرونده های نادیده گرفته شده از فهرست کار را حذف می کند.

زیر درخت

Git Subtree مکانیسمی برای مدیریت و ادغام زیر مجموعه ها در یک مخزن اصلی است. بر خلاف زیرمجموعه ها ، که زیرزمین را به عنوان یک موجود جداگانه با مخزن خاص خود درمان می کنند ، زیر درختان به شما امکان می دهند محتوای مخزن دیگری را مستقیماً در زیر مجموعه ای از مخازن اصلی خود قرار دهید.

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

git subtree add --prefix=<dir> <repository> <branch>

یک مخزن را به عنوان یک زیرمجموعه اضافه می کند.

git subtree merge --prefix=<dir> <branch>

یک زیر درخت را ادغام می کند.

git subtree pull --prefix=<dir> <repository> <branch>

تغییرات جدیدی را از مخزن Subtree جلب می کند.

نحوه جستجو در GIT

git grep یک دستور جستجوی قدرتمند در GIT است که به کاربران امکان می دهد رشته ها یا الگوهای خاصی را در پرونده های یک مخزن جستجو کنند. این دستگاه از طریق فهرست کار و شاخص جستجو می کند و یک روش سریع و کارآمد برای یافتن وقایع یک الگوی مشخص در چندین پرونده ارائه می دهد.

این دستور به ویژه برای توسعه دهندگان به دنبال یافتن نمونه های کد ، نظرات یا متن در یک پروژه مفید است و آنها را قادر می سازد تا با سهولت حرکت و درک کد های بزرگ را درک کنند. با استفاده از گزینه ها و پرچم های مختلف ، Git Grep به شما امکان می دهد جستجوهای هدفمند را انجام دهید و آن را به ابزاری اساسی برای تجزیه و تحلیل کد و نگهداری تبدیل کنید.

git grep <pattern>

جستجو برای رشته ای در فهرست کار و فهرست.

git grep -e <pattern>

جستجو برای یک الگوی خاص.

بیچاری در گیت

Git Bisecting ابزاری قدرتمند اشکال زدایی است که به شناسایی تعهد خاصی که یک اشکال یا مسئله را در یک پروژه معرفی کرده است ، کمک می کند. با انجام یک جستجوی باینری از طریق تاریخ تعهد ، git bisect به طور مؤثر محدوده تعهدات احتمالی مشکل را باریک می کند.

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

این رویکرد تکراری به سرعت تعهد معیوب را منزوی می کند و به توسعه دهندگان این امکان را می دهد تا تغییر دقیقی را که باعث مشکل شده است ، مشخص کنند. این اشکال زدایی سریعتر و دقیق تر را تسهیل می کند.

git bisect start

یک جلسه بی نظیر را شروع می کند.

git bisect bad

نسخه فعلی را بد نشان می دهد.

git bisect good <commit>

تعهد مشخص شده را به خوبی نشان می دهد.

git bisect reset

یک جلسه بی نظیر به پایان می رسد و به شاخه اصلی باز می گردد.

git bisect visualize

ابزاری بصری برای کمک به بیچاری راه اندازی می کند.

ویژگی های git

ویژگی های GIT تنظیماتی هستند که تعریف می کنند که چگونه GIT باید پرونده ها یا مسیرهای خاص را در یک مخزن اداره کند. این ویژگی ها در پرونده ای به نام .gitattributes تعریف شده اند ، و می توانند رفتارهای مختلفی مانند رمزگذاری متن ، عادی سازی خط ، استراتژی های ادغام و الگوریتم های مختلف را کنترل کنند.

با تنظیم ویژگی ها ، می توانید از رفتار مداوم در محیط ها و همکاران مختلف اطمینان حاصل کنید ، و مدیریت پرونده ها با نیازهای خاص یا پیچیدگی ها را آسان تر می کند.

به عنوان مثال ، شما می توانید پرونده های خاصی را به عنوان باینری علامت گذاری کنید تا از تلاش برای ادغام آنها جلوگیری کنید ، یا درایورهای Diff Custom را برای مقایسه های معنی دار تر مشخص کنید.

git check-attr <attribute> -- <file>

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

پرداخت گیت

git checkout یک دستور همه کاره در GIT است که برای جابجایی بین شاخه ها ، برچسب ها یا تعهدات مختلف در یک مخزن استفاده می شود. با به روزرسانی دایرکتوری و فهرست کار برای مطابقت با شعبه مشخص شده یا تعهد ، به شما امکان می دهد در آن نقطه با وضعیت مخزن مشاهده یا کار کنید.

همچنین می توانید برای ایجاد شاخه های جدید ، بازگرداندن پرونده های خاص از یک تعهد ، از git checkout استفاده کنید ، یا حتی یک شاخه جدید را با استفاده از گزینه --orphan استفاده از گزینه -استفاده کنید. این دستور برای پیمایش و مدیریت نسخه های مختلف پایگاه کد یک پروژه ضروری است.

git checkout <commit>

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

git checkout -b <branch> <commit>

شاخه جدیدی به نام <stranch> با شروع از تعهد مشخص شده ایجاد می کند و به آن شاخه تغییر می کند و به شما امکان می دهد کار را از آن نقطه در تاریخ تعهد شروع کنید.

git checkout <commit> -- <file>

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

git checkout --orphan <new_branch>

شعبه جدیدی به نام <wew_branch> ایجاد می کند بدون سابقه متعهد ، به طور موثری شاخه جدیدی را شروع می کند که با یک فهرست کار و شاخص تمیز شروع می شود ، گویی این یک مخزن جدید است.

بازتاب

Git Reflog ابزاری قدرتمند است که تمام تغییرات ایجاد شده در نکات شاخه ها و مرجع سر را در یک مخزن GIT ثبت می کند. این شامل اقداماتی از قبیل تعهد ، پرداخت ، ادغام و تنظیم مجدد است.

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

git reflog

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

git reflog show <ref>

بازتاب را برای مرجع مشخص شده (<ref>) نشان می دهد ، و نشان می دهد که تغییرات در آن مرجع ، از جمله به روزرسانی در نکات مربوط به سر یا شعبه ، به همراه پیام های متعهد و زمان بندی همراه است.

نحوه رسیدگی به پرونده های غیرقابل کنترل در GIT

git clean

git clean پرونده ها و دایرکتوری های غیرقابل کنترل را از فهرست کار حذف می کند. به طور پیش فرض ، فقط نشان می دهد که چه چیزی بدون حذف چیزی حذف می شود.

برای انجام پاکسازی واقعی ، باید از پرچم های اضافی استفاده کنید:

git clean -f : پرونده های غیرقابل انکار را حذف می کند.

git clean -fd : پرونده ها و دایرکتوری های غیرقابل انکار را حذف می کند.

git clean -fx : پرونده های غیرقابل انکار را حذف می کند ، از جمله مواردی که توسط .gitignore نادیده گرفته می شود.

git clean -n : نشان می دهد که کدام پرونده ها بدون حذف آنها حذف می شوند.

زور فشار در گیت

git push --force

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

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

گیت واکشی و کشیدن

git fetch --all

به روزرسانی ها را از کلیه مخازن از راه دور پیکربندی شده برای مخزن محلی خود بازیابی کنید ، بدون تغییر شاخه های محلی خود ، از همه شاخه ها و برچسب ها تغییر دهید.

git pull --rebase

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

چگونه می توان درگیری های ادغام را در git انجام داد

رسیدگی به درگیری های ادغام در GIT یک مهارت اساسی برای همکاری در پروژه هایی با چندین همکار است.

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

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

git mergetool

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

git rerere

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

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

درختان کار در گیت

درختان کار در GIT به شما امکان می دهد چندین دایرکتوری کار در ارتباط با یک مخزن واحد داشته باشید. این امر به ویژه برای کار کردن بر روی چندین شاخه به طور همزمان بدون نیاز به تغییر مداوم شاخه ها در همان فهرست مفید است.

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

git worktree add ../new-branch feature-branch

یک درخت کار جدید را در دایرکتوری به نام "شاخه جدید" بر اساس "شاخه ویژگی" ایجاد می کند.

git worktree list

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

git worktree remove <path>

درخت کاری مشخص شده را در <Path> داده شده حذف می کند ، فهرست کار را حذف می کند و شاخه را جدا می کند.

git worktree prune

منابع را به درختان کار موجود ، پاک کردن فهرست درختان کار حذف می کند.

git worktree lock <path>

درخت کاری مشخص شده را در <Path> داده شده قفل می کند و از هرس آن جلوگیری می کند.

git worktree unlock <path>

درخت کاری مشخص شده را در <Path> داده شده باز می کند ، و در صورت لزوم اجازه می دهد تا هرس شود.

زیرمجموعه ها در git

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

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

git submodule init

زیرمجموعه ها را در مخزن خود آغاز می کند. این دستور پیکربندی لازم را برای زیرمجموعه ها تنظیم می کند ، اما در واقع آنها را کلون نمی کند.

git submodule update

کلون ها را در مسیرهای مشخص شده تحلیل می کند. این به طور معمول پس از شروع submodule git اجرا می شود.

git submodule add <repository> <path>

در مسیر مشخص شده ، یک زیرمجاز جدید به مخزن خود اضافه می کند و آن را به مخزن مشخص شده پیوند می دهد.

git submodule status

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

git submodule foreach <command>

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

git submodule sync

URL های زیرمجموعه را در پرونده پیکربندی خود با موارد موجود در پرونده .gitmodules همگام سازی کنید ، و اطمینان حاصل کنید که آنها به روز هستند.

git submodule deinit <path>

زیرمجاز مشخص شده را حذف کرده و پیکربندی آن را از بین می برد. این کار دایرکتوری کار زیرمجموعه را حذف نمی کند.

git submodule update --remote

از مخازن از راه دور خود ، زیرمجموعه ها را به آخرین تعهد خود واگذار و به روز می کند.

git submodule set-url <path> <newurl>

URL زیرمجاز مشخص شده را به URL جدید تغییر می دهد.

git submodule absorbgitdirs

برای ساده کردن ساختار ، فهرست راهنمای GIT Submodule را در SuperProject جذب می کند.

با تشکر از شما برای خواندن! امیدوارم این صفحه تقلب به شما کمک کند تا راحت تر در Git کار کنید.

خبرکاو

ارسال نظر

دیدگاه‌ها بسته شده‌اند.


تبليغات ايهنا تبليغات ايهنا

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