
برای انجام یک commit جزئی در Git، گزینه –patch را به آن اضافه کنید git add فرمان
git add --patch <file-name>
یا به طور خلاصه می توانید انجام دهید:
git add -p <file-name>
اجرای git add به صورت تکراری از شما میپرسد که چه بخشهایی از تغییرات را میخواهید اضافه کنید. برای اضافه کردن قسمت، “y” را وارد کنید، برای اینکه قسمت را اضافه نکنید، “n” را وارد کنید.
این یک راهنمای کامل برای انجام تعهدات جزئی در Git است. شما یاد خواهید گرفت که چگونه فقط بخش هایی از تغییراتی که ایجاد کرده اید را مرحله بندی کنید. همچنین نمونه های عینی مفیدی خواهید یافت که از درک حمایت می کنند.
دستور git add –patch
برای اینکه بخش های خاصی از یک فایل را به تغییرات متعهد کنید، باید از آن استفاده کنید git add فرمان با – یک پچ گزینه ای برای قرار دادن تنها “تکه های” خاصی از تغییرات.
git add -p <file-name>
جایی که <име-на-файл> نام فایل تغییرات است. اگر نام فایل را رها کنید، همه تغییرات را در نظر می گیرد.
گزینه های ‘git add -p’ [y,n,q,a,d,e,?]
وقتی شروع کردی git add -p دستور، خط فرمان می پرسد کدام بخش از تغییرات را می خواهید اعمال کنید. گزینه های زیادی وجود دارد که Git هنگام انجام یک commit جزئی ارائه می دهد.
Stage this hunk [y,n,q,a,d,e,?]?
برای انجام یک عمل، یکی از کاراکترها را تایپ کرده و enter را فشار دهید. این عمل مربوط به تغییر را انجام می دهد. معمولاً شما فقط از «y» یا «n» استفاده خواهید کرد.
در اینجا لیست کاملی از گزینه هایی است که می توانید برای انجام این تغییر انتخاب کنید.
y - add this partial change n - do not add this partial change q - (quit) do not ad this partial change or any of the remaining ones a - add this partial change and all later changes in the file d - do not add this partial change or any of the later changes in the file g - select a change to go to / - search for a hunk matching the given regex j - ditch this change, see next undecided change J - ditch this change, see next change k - ditch this change, see previously ditched change K - ditch this change, see previous change s - split the current partial change into smaller partial changes e - manually edit the current partial change ? - display help for the command
چگونه قطعات درج شده را مشاهده کنیم؟
گاهی اوقات تعداد تغییرات جزئی که اضافه می کنید می تواند زیاد باشد، و ممکن است بخواهید قبل از انجام تغییرات تدریجی بررسی کنید که چه کاری انجام داده اید.
برای مشاهده آسان اضافات جزئی که ایجاد کرده اید، می توانید اجرا کنید:
git diff --staged
چگونه قسمتی که به اشتباه اضافه شده را بازنشانی کنیم؟
اگر بهطور تصادفی تغییری ایجاد کردید، میتوانید این عمل را با اجرا لغو کنید git reset با – یک پچ گزینه (-پ):
git reset -p
چگونه در هنگام ویرایش پیام، تعهد را ببینیم؟
همچنین مشاهده بخشی از تغییرات مرحلهای هنگام نوشتن پیام commit میتواند مفید باشد. برای این کار مشخص کنید – چشم انداز گزینه ج git commit:
git commit -v
یک مثال
بیایید یک مثال عینی از انجام افزودن و تعهد جزئی با یک مثال واقعی ببینیم.
در اینجا یک نمونه فایل پایتون است که تحت کنترل نسخه است.
حالا بیایید تغییراتی در آن ایجاد کنیم.
حال، اجازه دهید تغییرات را به وصله های مختلف انجام دهیم تا تغییرات کد که با دایره هایلایت شده اند خاموش و آنهایی که دارای فلش هستند روشن شوند.
این اتفاق می افتد با git add -p دستور:
git add -p
من فقط قطعه 2/2 را در اینجا وارد می کنم زیرا فقط بر پارامترهای ورودی تأثیر می گذارد. تصحیح کد را می گذارم تور عملکرد خارج از تعهد
توجه داشته باشید که گروه بندی تغییرات همیشه منطقی نیست. این به Git بستگی دارد که چه چیزی را یک “تکه” در نظر می گیرد. این می تواند منجر به تکه های ناسازگار یا بیش از حد طولانی شود. بخش بعدی توضیح می دهد که چگونه می توانید انتخاب کنید که چه چیزی را خط به خط انجام دهید.
دستور git add –edit
مانند git add -p ممکن است دستور همیشه تغییرات شما را آنطور که دوست دارید گروه بندی نکند، انجام یک commit جزئی ممکن است کارساز نباشد.
برای حل این مشکل می توانید استفاده کنید git افزودن ویرایش گزینه (git add -e به طور خلاصه).
git add -e <file-name>
با اجرای این دستور یک پوسته تعاملی باز می شود که در آن می توانید موارد اضافه شده را خط به خط کنترل کنید. اگر نمیخواهید خط را اضافه کنید، فقط آن را از نما حذف کنید.
بهترین راه برای درک نحوه عملکرد آن، دیدن مثالها است.
یک مثال
بیایید به یک مثال عینی برای حمایت از درک نگاه کنیم.
در اینجا یک فایل متنی ساده در پروژه Git من وجود دارد که در آن سه خط متن اضافه کرده ام:
به جای اینکه این تغییرات را به یکباره در پروژه انجام دهیم، فرض کنید می خواهیم هر تغییر سفارش را به عنوان یک تعهد جداگانه انجام دهیم.
اما موضوع اینجاست. اگرچه می توانید استفاده کنید git add -p برای انجام جمع جزئی، استدلال در مورد آنچه به عنوان “جزئی” به حساب می آید تا حدودی دلبخواه است.
بیایید سعی کنیم اجرا کنیم git add -p بر test.txt فایل:
$ git add -p test.txt
همانطور که می بینید، این دستور تغییرات را به عنوان بخش های جداگانه یا “تکه ها” نمی بیند. در عوض، فقط انجام همه تغییرات را به یکباره پیشنهاد می کند. این یعنی git add -p در این مورد کار نمی کند
اما می توانید استفاده کنید git add -e دستور اضافه کردن تغییرات خط به خط.
$ git add -e test.txt
این یک پوسته تعاملی را باز می کند که در آن می توانید به معنای واقعی کلمه انتخاب کنید چه چیزی در آن گنجانده شود git add فرمان برای حذف ردیف ها از چسباندن، به سادگی آنها را حذف کنید.
به عنوان مثال، اجازه دهید فقط خط اول را در اولین commit قرار دهیم. برای انجام این کار، اجازه دهید خطوط دیگر را از پوسته تعاملی حذف کنیم.
توجه داشته باشید که این فایل محلی را تغییر نمی دهد، فقط آنچه را که متعهد می شود تغییر می دهد.
پس از انجام اولین تغییر خط، وضعیت git به شکل زیر است:
بعد بیا نامزد کنیم
$ git commit -m "Add the first line"
اکنون ردیف اول متعهد است، اما بقیه ردیف ها هنوز متعهد نشده اند. با دویدن می توانید این را ببینید git diff:
برای ایجاد بقیه تغییرات ردیف، باید مراحل انجام شده برای ایجاد ردیف اول را تکرار کنیم. برای اختصار، ما این کار را در اینجا انجام نمی دهیم، زیرا ما فقط چیزهایی را که قبلاً آموخته اید تکرار می کنیم.
خلاصه
امروز یاد گرفتید که چگونه فقط بخش هایی از تغییرات را در Git اعمال کنید. برای بردن به خانه، این اتفاق می افتد با git add -p فرمان (مخفف شده از git add –patch). وقتی این کار را انجام میدهید، Git بخشهای مختلفی از تغییراتی که ایجاد کردهاید را به شما نشان میدهد و از شما میپرسد که آیا میخواهید آنها را اضافه کنید یا خیر.
اگر میخواهید یک تغییر بزرگتر را به تعهدات کوچکتر تقسیم کنید، استفاده از افزودن جزئی مفید است، زیرا به شما این امکان را میدهد که انتخاب کنید کدام قسمتها را شامل شود.
اگر به افزودن جزئی دقیق تری نیاز دارید، می توانید این کار را نیز انجام دهید git add -e فرمان این به شما امکان می دهد تغییرات را خط به خط در commit های خود انتخاب کنید.
با تشکر برای خواندن. کد نویسی مبارک!
همچنین بخوانید
git add. در مقابل git add -A