این دستور git-show است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
git-show - انواع مختلفی از اشیاء را نشان می دهد
خلاصه
دستگاه گوارش نشان [گزینه ها] ...
شرح
یک یا چند شی (حباب، درخت، تگ و تعهد) را نشان می دهد.
برای commit ها پیام گزارش و تفاوت متنی را نشان می دهد. همچنین commit ادغام را ارائه می دهد
در قالبی خاص که توسط دستگاه گوارش درخت تفاوت -- سی سی.
برای برچسب ها، پیام برچسب و اشیاء ارجاع شده را نشان می دهد.
برای درختان، نام ها را نشان می دهد (معادل دستگاه گوارش ls-tree با ---only).
برای حباب های ساده، محتویات ساده را نشان می دهد.
این فرمان گزینه های قابل اجرا را می گیرد دستگاه گوارش درخت تفاوت فرمان برای کنترل چگونگی
تغییراتی که commit معرفی می کند نشان داده شده است.
این صفحه راهنما تنها گزینه هایی را که اغلب استفاده می شود توضیح می دهد.
OPTIONS
...
نام اشیاء برای نشان دادن. برای فهرست کاملتر از روشهای املای نام اشیا،
بخش "تعیین تجدید نظرها" را ببینید gitrevisions(7).
-- زیبا[= ]، --format=
محتویات گزارشهای commit را در قالب مشخصی چاپ کنید می تواند
یکی از یک خط, کوتاه, متوسط, کامل, کاملتر, پست الکترونیک, خام, قالب: و
tformat:است. وقتی که هیچ یک از موارد فوق نیست و دارد %placeholder در آن ، آن
طوری عمل می کند که انگار --pretty=tformat: داده شده بود.
برای اطلاعات بیشتر در مورد هر قالب، بخش "قالب های زیبا" را ببینید. چه زمانی
= قسمت حذف شده است، پیش فرض آن است متوسط.
توجه: میتوانید قالب زیبای پیشفرض را در پیکربندی مخزن مشخص کنید (نگاه کنید به
گیت(1).
-- مخفف-متعهد
بهجای نمایش نام شی هگزادسیمال کامل 40 بایتی، فقط یک
پیشوند جزئی تعداد غیر پیش فرض ارقام را می توان با "--abbrev=" مشخص کرد "
(که همچنین خروجی تفاوت را تغییر می دهد، اگر نمایش داده شود).
این باید «--pretty=oneline» را برای افرادی که استفاده میکنند خواناتر کند
پایانه های 80 ستونی.
--no-abrevrev-commit
نمایش نام شی هگزادسیمال کامل 40 بایتی. این امر --abbrev-commit و را نفی می کند
گزینه هایی که به آن دلالت دارند مانند "--oneline". آن را نیز نادیده می گیرد
log.abbrevCommit متغیر.
--یک خط
این مختصر عبارت "--pretty=oneline --abbrev-commit" است که با هم استفاده می شود.
--Encoding=
اشیاء commit رمزگذاری مورد استفاده برای پیام گزارش را در رمزگذاری خود ثبت می کنند
سرتیتر؛ از این گزینه می توان برای گفتن دستور کدگذاری مجدد پیام commit log استفاده کرد
در رمزگذاری ترجیحی کاربر. برای دستورات غیر لوله کشی این به طور پیش فرض روی است
UTF-8. توجه داشته باشید که اگر یک شی ادعا کند که در X کدگذاری شده است و ما در حال خروجی X هستیم، ما
خروجی شئ را کلمه به کلمه می دهد. این بدان معنی است که توالی های نامعتبر در نسخه اصلی
commit ممکن است در خروجی کپی شود.
--یادداشت[= ]
نمایش یادداشت ها (نگاه کنید به گیت-(1)) که هنگام نشان دادن commit، commit را حاشیه نویسی می کنند
پیام ورود این پیشفرض برای دستورات git log، git show و git whatchanged است
زمانی که هیچ گزینه --pretty، --format یا --oneline در خط فرمان وجود ندارد.
بهطور پیشفرض، یادداشتهای نشاندادهشده از یادداشتهایی هستند که در فهرست فهرست شدهاند core.notesRef و
notes.displayRef متغیرها (یا نادیده گرفتن محیط مربوطه). دیدن گیت(1)
برای جزئیات بیشتر.
با اختیاری آرگومان، این یادداشت ها را به جای یادداشت های پیش فرض نشان دهید ref
مرجع (های) ref زمانی که با refs/notes/ شروع می شود نام ref کامل را مشخص می کند. زمانی که آن را
با notes/، refs/ شروع می شود و در غیر این صورت refs/notes/ برای تشکیل نام کامل پیشوند است.
مراجعه
چندین گزینه --notes را می توان برای کنترل اینکه کدام یادداشت نمایش داده می شود ترکیب کرد.
مثالها: "--notes=foo" فقط یادداشتهای "refs/notes/foo" را نشان میدهد. "--notes=foo
--notes" هر دو یادداشت از "refs/notes/foo" و از یادداشت های پیش فرض ref (های) را نشان می دهد.
--بدون یادداشت
یادداشت ها را نشان ندهید. با تنظیم مجدد لیست، گزینه --notes بالا را نفی می کند
یادداشت ها ref هایی هستند که یادداشت ها از آن نشان داده می شوند. گزینه ها به ترتیب داده شده در قسمت تجزیه می شوند
خط فرمان، به عنوان مثال "--notes --notes=foo --no-notes --notes=bar" فقط نشان داده می شود
یادداشت از "refs/notes/bar".
--show-notes[= ]، --[no-]یادداشت های استاندارد
این گزینه ها منسوخ شده اند. به جای آن از گزینه های --notes/--no-notes بالا استفاده کنید.
--نمایش-امضا
اعتبار یک شی commit امضا شده را با ارسال امضا به gpg --verify بررسی کنید
و خروجی را نشان دهید.
بسیار فرمها
اگر commit یک ادغام باشد و اگر قالب زیبا نباشد یک خط, پست الکترونیک or خام،
خط اضافی قبل از درج شده است نویسنده: خط این خط با "Merge:" و شروع می شود
بخشهای تعهدات اجدادی چاپ شده و با فاصلههایی از هم جدا شدهاند. توجه داشته باشید که لیست شده است
ممکن است الزاماً commit ها لیستی از این موارد نباشند مستقیم اگر شما محدود کرده باشید، والدین متعهد می شوند
دیدگاه شما از تاریخ: به عنوان مثال، اگر فقط به تغییرات مربوط به a علاقه دارید
فهرست یا فایل خاص
چندین فرمت داخلی وجود دارد و می توانید با تنظیم a فرمت های اضافی را تعریف کنید
بسیار. گزینه config به نام فرمت دیگری یا a قالب: رشته، به عنوان
در زیر توضیح داده شده است (نگاه کنید به گیت(1)). در اینجا جزئیات فرمت های داخلی آورده شده است:
· یک خط
این به گونه ای طراحی شده است که تا حد امکان جمع و جور باشد.
· کوتاه
مرتکب شدن
نویسنده:
· متوسط
مرتکب شدن
نویسنده:
تاریخ:
· کامل
مرتکب شدن
نویسنده:
مرتکب شدن:
· کاملتر
مرتکب شدن
نویسنده:
تاریخ نویسنده:
مرتکب شدن:
تاریخ تعهد:
· پست الکترونیک
از جانب
از جانب:
تاریخ:
موضوع: [پتچ]
· خام
La خام فرمت کل commit را دقیقاً همانطور که در شی commit ذخیره شده است نشان می دهد.
شایان ذکر است، SHA-1 ها به طور کامل نمایش داده می شوند، صرف نظر از اینکه --abbrev یا
--no-abbrev استفاده می شود و پدر و مادر اطلاعات نشان می دهد که والدین واقعی، بدون
با در نظر گرفتن پیوند یا ساده سازی تاریخچه توجه داشته باشید که این قالب تاثیر می گذارد
روشی که commit ها نمایش داده می شوند، اما نه روشی که تفاوت نشان داده می شود، مثلاً با git log
-- خام برای به دست آوردن نام کامل اشیاء در قالب تفاوت خام، از --no-abbrev استفاده کنید.
· قالب:
La قالب: فرمت به شما امکان می دهد مشخص کنید کدام اطلاعات را می خواهید نشان دهید.
کمی شبیه به فرمت printf کار می کند، با استثنای قابل توجهی که شما یک را دریافت می کنید
خط جدید با %n بجای \n.
به عنوان مثال، قالب: " نویسنده of %h بود %an، %ar%nThe عنوان بود >>%s<<%n" نشان خواهد داد
چیزی مثل این:
نویسنده fe6e0ee جونیو سی هامانو، 23 ساعت پیش بود
عنوان >>t4119: test autocomputing -p بود برای ورودی تفاوت سنتی.<
جایگاهداران عبارتند از:
· %H: ارتکاب هش
· %h: مخفف commit hash
· %T: درخت هش
· %t: مخفف درخت هش
· %P: هش های والدین
· %p: هش های والد مخفف
· %an: نام نویسنده
· %aN: نام نویسنده (با احترام به mailmap، ببینید git-shortlog(1) یا git-blame(1))
· %ae: ایمیل نویسنده
· %aE: ایمیل نویسنده (با احترام به mailmap، ببینید git-shortlog(1) یا git-blame(1))
· ٪آگهی: تاریخ نویسنده (قالب به --date= گزینه احترام می گذارد)
· ٪آگهی: تاریخ نویسنده، سبک RFC2822
· %ar: تاریخ نویسنده، نسبی
· % در: تاریخ نویسنده، مهر زمانی یونیکس
· %ai: تاریخ نویسنده، فرمت شبیه ISO 8601
· %aI: تاریخ نویسنده، فرمت سختگیرانه ISO 8601
· %cn: نام کامیتر
· %cN: نام committer (با احترام به mailmap، ببینید git-shortlog(1) یا git-blame(1))
· % ce: ایمیل committer
· %cE: ایمیل committer (با احترام به mailmap، نگاه کنید به git-shortlog(1) یا git-blame(1))
· %cd: تاریخ committer (قالب به --date= گزینه احترام می گذارد)
· %cD: تاریخ کامیتر، سبک RFC2822
· %cr: تاریخ مرتکب، نسبی
· %ct: تاریخ committer، مهر زمانی یونیکس
· %ci: تاریخ committer، فرمت شبیه ISO 8601
· %cI: تاریخ committer، فرمت سختگیرانه ISO 8601
· %d: ref names، مانند گزینه --decorate of گیت(1)
· %D: نامهای ref بدون بستهبندی "("، ")".
· %e: رمزگذاری
· %s: موضوع
· %f: خط موضوع تمیز شده، مناسب برای نام فایل
· %b: بدن
· %B: بدنه خام (سوژه و بدنه باز نشده)
· %N: یادداشت ها را انجام دهید
· %GG: پیام تأیید خام از GPG برای یک commit امضا شده
· %G: نشان دادن "G" برای امضای خوب، "B" برای امضای بد، "U" برای یک خوب،
امضای غیرقابل اعتماد و "N" بدون امضا
· %GS: نشان دادن نام امضاکننده برای یک تعهد امضا شده
· %GK: نمایش کلید مورد استفاده برای امضای یک commit امضا شده
· %gD: انتخابگر reflog، به عنوان مثال، refs/stash@{1}
· % gd: انتخابگر reflog کوتاه شده، به عنوان مثال، stash@{1}
· % gn: نام هویت reflog
· %gN: نام هویت reflog (با احترام به mailmap، ببینید git-shortlog(1) یا git-
سرزنش(1))
· ٪GE: ایمیل هویت را مجدداً ثبت کنید
· ٪GE: reflog ایمیل هویت (با احترام به mailmap، نگاه کنید به git-shortlog(1) یا git-
سرزنش(1))
· %gs: reflog موضوع
· %Cred: تغییر رنگ به قرمز
· %Cgreen: رنگ را به سبز تغییر دهید
· % Cblue: تغییر رنگ به آبی
· % Creset: تنظیم مجدد رنگ
· %C(...): مشخصات رنگ، همانطور که در color.branch.* گزینه config توضیح داده شده است. اضافه كردن
خودکار، در ابتدا تنها زمانی رنگ را منتشر می کند که رنگ ها برای خروجی گزارش فعال باشند
(با color.diff، color.ui، یا --color و رعایت تنظیمات خودکار
اگر به ترمینال می رویم). خودکار به تنهایی (یعنی %C(خودکار)) روشن خواهد شد
رنگآمیزی خودکار روی متغیرهای بعدی تا زمانی که رنگ دوباره تغییر کند.
· %m: علامت چپ، راست یا مرز
· %n: خط جدید
· %%: یک خام %
· %x00: چاپ یک بایت از یک کد هگز
· %w([ [، [، ]]]): بسته بندی خط سوئیچ، مانند گزینه -w از git-
کوتاه(1).
· %<( [,trunc|ltrunc|mtrunc]): کاری کنید که متغیر بعدی حداقل N ستون بگیرد،
در صورت لزوم فضاهای سمت راست را پر کنید. به صورت اختیاری در ابتدا کوتاه کنید
(ltrunc)، وسط (mtrunc) یا انتهای (trunc) اگر خروجی طولانی تر از N باشد.
ستون ها. توجه داشته باشید که کوتاه کردن فقط با N >= 2 به درستی کار می کند.
· %<|( ): نگهدارنده بعدی را حداقل تا ستون های N قرار دهید، padding
در صورت لزوم فضاهای سمت راست
· %>( ), %>|( ): شبیه به %<( ), %<|( ) به ترتیب، اما فضاهای بالشتک
در سمت چپ
· %>>( ), %>>|( ): شبیه به %>( ), %>|( ) به ترتیب، با این تفاوت که اگر
مکان نگهدار بعدی بیشتر از مقدار داده شده فاصله می گیرد و در سمت چپ آن فاصله وجود دارد.
از آن فضاها استفاده کنید
· %><( ), %><|( ): شبیه به % <( ), %<|( ) به ترتیب، اما بالشتک هر دو
طرفین (یعنی متن در مرکز قرار دارد)
توجه داشته باشید:
برخی از متغیرها ممکن است به گزینه های دیگری که به موتور پیمایش تجدیدنظر داده شده است بستگی داشته باشند.
برای مثال، گزینههای %g* reflog یک رشته خالی را وارد میکنند مگر اینکه ما اینطور باشیم
عبور از ورودی های reflog (مثلاً توسط git log -g). متغیرهای %d و %D استفاده خواهند شد
قالب دکوراسیون "کوتاه" اگر --decorate قبلاً در دستور ارائه نشده بود
خط.
اگر بعد از آن یک + (علامت بعلاوه) اضافه کنید % از یک مکان نگهدار، یک خط تغذیه بلافاصله وارد می شود
قبل از بسط، اگر و فقط اگر مکان نگهدار به یک رشته غیر خالی گسترش یابد.
اگر بعد از آن یک - (علامت منفی) اضافه کنید % از یک مکان نگهدار، فیدهای خطی که بلافاصله قبل از آن است
اگر و فقط اگر مکان نگهدار به یک رشته خالی گسترش یابد، گسترش حذف می شود.
اگر بعد از آن یک `` (فاصله) اضافه کنید % از یک مکان نگهدار، یک فاصله بلافاصله قبل از آن درج می شود
بسط میشود اگر و فقط در صورتی که نگهدارنده مکان به یک رشته غیر خالی گسترش یابد.
· tformat:
La tformat: فرمت دقیقاً مانند کار می کند قالب:، با این تفاوت که "ترمیناتور" را ارائه می دهد
معناشناسی به جای معناشناسی "جداکننده". به عبارت دیگر، هر commit دارای آن است
کاراکتر پایان دهنده پیام (معمولاً یک خط جدید) به جای جداکننده اضافه شده است
بین ورودی ها قرار می گیرد. این بدان معنی است که ورود نهایی یک قالب تک خطی خواهد بود
به درستی با یک خط جدید خاتمه داده شود، درست مانند قالب "oneline". برای
مثال:
$ git log -2 --pretty=format:%h 4da45bef \
| perl -pe '$_ .= " -- NO NEWLINE\n" مگر اینکه /\n/'
4da45be
7134973 -- NO NEWLINE
$ git log -2 --pretty=tformat:%h 4da45bef \
| perl -pe '$_ .= " -- NO NEWLINE\n" مگر اینکه /\n/'
4da45be
7134973
علاوه بر این، هر رشته ناشناختهای که دارای % باشد، به گونهای تفسیر میشود که گویی دارد
tformat: در مقابل آن. به عنوان مثال، این دو معادل هستند:
$ git log -2 --pretty=tformat:%h 4da45bef
$ git log -2 --pretty=%h 4da45bef
مشترک متفاوت OPTIONS
-p، -u، --patch
ایجاد پچ (به بخش تولید وصله مراجعه کنید).
-s، --no-patch
سرکوب خروجی تفاوت برای دستوراتی مانند git show که پچ را توسط نشان می دهد مفید است
به طور پیش فرض، یا برای لغو اثر --patch.
-U ، -- متحد =
ایجاد تفاوت با خطوط زمینه به جای سه مورد معمول. دلالت بر -p.
-- خام
برای هر commit، خلاصه ای از تغییرات را با استفاده از فرمت raw diff نشان دهید. "RAW" را ببینید
OUTPUT FORMAT" بخش git-diff(1). این با نشان دادن خود گزارش متفاوت است
در فرمت خام، که می توانید با --format=raw به آن دست پیدا کنید.
--وصله-با-خام
مترادف -p --raw.
-- حداقل
زمان بیشتری را صرف کنید تا مطمئن شوید که کمترین تفاوت ممکن ایجاد شده است.
--صبر
با استفاده از الگوریتم "تفاوت صبر" تفاوت ایجاد کنید.
-- هیستوگرام
با استفاده از الگوریتم «دیف هیستوگرام» یک تفاوت ایجاد کنید.
--diff-algorithm={صبر|حداقل|هیستوگرام|myers}
یک الگوریتم diff را انتخاب کنید. انواع به شرح زیر است:
پیش فرض، مایرز
الگوریتم اصلی تفاوت حریصانه. در حال حاضر، این پیش فرض است.
حداقل
زمان بیشتری را صرف کنید تا مطمئن شوید که کمترین تفاوت ممکن ایجاد شده است.
صبر
هنگام تولید وصله ها از الگوریتم «تفاوت صبر» استفاده کنید.
هیستوگرام
این الگوریتم الگوریتم صبر را گسترش میدهد تا «پشتیبانی از موارد رایج کم
عناصر".
برای مثال، اگر متغیر diff.algorithm را روی یک مقدار غیر پیشفرض پیکربندی کرده باشید و
می خواهید از پیش فرض استفاده کنید، سپس باید از گزینه --diff-algorithm=default استفاده کنید.
--stat[= [، [، ]]]
یک diffstat ایجاد کنید. به طور پیش فرض، از فضای لازم برای
قسمت نام فایل و بقیه برای قسمت گراف. حداکثر عرض به ترمینال پیشفرض است
عرض، یا 80 ستون اگر به یک ترمینال متصل نباشد، و می تواند توسط آن لغو شود .
عرض قسمت نام فایل را می توان با دادن عرض دیگری محدود کرد
بعد از کاما عرض بخش نمودار را می توان با استفاده محدود کرد
--stat-graph-width= (بر تمام دستورات تولید یک نمودار آماری تأثیر می گذارد) یا توسط
تنظیم diff.statGraphWidth= (بر git format-patch تأثیر نمی گذارد). با دادن الف
پارامتر سوم ، می توانید خروجی را به اولی محدود کنید خطوط، دنبال شد
توسط ... در صورت وجود بیشتر.
این پارامترها همچنین می توانند به صورت جداگانه با --stat-width= تنظیم شوند ،
--stat-name-width= و --stat-count= .
--numstat
شبیه -stat است، اما تعداد خطوط اضافه و حذف شده را در نماد اعشاری و
نام مسیر بدون اختصار، برای اینکه آن را ماشین دوستانه تر کند. برای فایل های باینری،
خروجی دو - به جای 0 0.
-- shortstat
خروجی فقط آخرین خط از قالب --stat حاوی تعداد کل اصلاح شده است
فایل ها و همچنین تعداد خطوط اضافه و حذف شده.
--dirstat[= ]
خروجی توزیع مقدار نسبی تغییرات برای هر زیر شاخه. در
رفتار --dirstat را می توان با ارسال لیست جدا شده با کاما سفارشی کرد
مولفه های. پیش فرض ها توسط متغیر پیکربندی diff.dirstat کنترل می شوند
(نگاه کنید به گیت(1)). پارامترهای زیر در دسترس هستند:
تغییرات
اعداد dirstat را با شمارش خطوطی که از آن حذف شده اند محاسبه کنید
منبع، یا به مقصد اضافه شده است. این مقدار کد خالص را نادیده می گیرد
حرکات درون یک فایل به عبارت دیگر، تنظیم مجدد خطوط در یک فایل انجام نمی شود
به اندازه سایر تغییرات محاسبه می شود. این رفتار پیش فرض در صورت عدم وجود پارامتر است
داده شده است.
خطوط
اعداد dirstat را با انجام تجزیه و تحلیل تفاوت مبتنی بر خط معمولی محاسبه کنید و
جمع کردن تعداد خطوط حذف شده/افزوده شده (برای فایل های باینری، تکه های 64 بایتی را بشمارید
در عوض، از آنجایی که فایل های باینری هیچ مفهوم طبیعی از خطوط ندارند). این بیشتر است
رفتار --dirstat گران قیمت نسبت به تغییر رفتار است، اما به حساب می آید
ترتیب خطوط در یک فایل به اندازه سایر تغییرات. خروجی به دست آمده است
مطابق با آنچه از گزینه های دیگر --*stat می گیرید.
فایل ها
اعداد dirstat را با شمارش تعداد فایل های تغییر یافته محاسبه کنید. هر کدام تغییر کرد
فایل در تجزیه و تحلیل dirstat به یک اندازه حساب می شود. این از نظر محاسباتی ارزانترین است
رفتار --dirstat، زیرا اصلاً لازم نیست به محتویات فایل نگاه کند.
انباشته
تغییرات در دایرکتوری فرزند را برای دایرکتوری والد نیز بشمارید. توجه داشته باشید که
هنگام استفاده از تجمعی، مجموع درصدهای گزارش شده ممکن است از 100% تجاوز کند. در
رفتار پیش فرض (غیر تجمعی) را می توان با غیر تجمعی مشخص کرد
پارامتر.
یک پارامتر عدد صحیح یک درصد برش (3٪ به طور پیش فرض) را مشخص می کند. دایرکتوری ها
کمتر از این درصد تغییرات در خروجی نشان داده نمی شود.
مثال: موارد زیر فایلهای تغییر یافته را شمارش میکنند، در حالی که دایرکتوریهای کمتر را نادیده میگیرند
بیش از 10٪ از کل مقدار فایل های تغییر یافته، و تعداد دایرکتوری فرزند انباشته شده است
در دایرکتوری های والد: --dirstat=files,10,cumulative.
--خلاصه
خروجی یک خلاصه فشرده از اطلاعات هدر توسعه یافته مانند ایجاد، تغییر نام
و حالت تغییر می کند.
--patch-with-stat
مترادف -p --stat.
-z
commit ها را به جای خطوط جدید با NUL ها جدا کنید.
همچنین، هنگامی که --raw یا --numstat داده شده است، نام مسیرها را تغییر ندهید و از NUL به عنوان استفاده کنید
پایانه های میدان خروجی
بدون این گزینه، هر خروجی نام مسیر دارای TAB، LF، دو نقل قول و
کاراکترهای اسلش به ترتیب با \t، \n، \" و \\ و نام مسیر جایگزین شدند
اگر هر یک از آن جایگزینها اتفاق افتاده باشد، در گیومههای دوتایی محصور خواهد شد.
--فقط نام
فقط نام فایل های تغییر یافته را نشان دهید.
--نام-وضعیت
فقط نام ها و وضعیت فایل های تغییر یافته را نشان دهید. توضیحات فیلتر --diff را ببینید
گزینه ای در مورد معنای حروف وضعیت.
--submodule[= ]
نحوه نمایش تفاوت در زیر ماژول ها را مشخص کنید. وقتی --submodule یا --submodule=log
داده می شود، ورود به سیستم فرمت استفاده می شود. این فرمت commit ها را در محدوده ای مانند فهرست می کند git-
زیر ماژول(1) خلاصه انجام می دهد. حذف گزینه --submodule یا مشخص کردن
--submodule=short، با استفاده از کوتاه قالب این قالب فقط نام ها را نشان می دهد
در ابتدا و انتهای محدوده متعهد می شود. می توان از طریق diff.submodule بهینه سازی کرد
متغیر پیکربندی
--رنگ[= ]
نمایش تفاوت رنگی --رنگ (یعنی بدون =) همان --color=always است.
می تواند یکی از همیشه، هرگز یا خودکار باشد.
--بدون رنگ
تفاوت رنگی را خاموش کنید. همان --color=never است.
--واژه-تفاوت[= ]
یک تفاوت کلمه را با استفاده از نشان دهید برای محدود کردن کلمات تغییر یافته به طور پیش فرض، کلمات هستند
با فضای خالی مشخص شده است. --word-diff-regex را در زیر ببینید. در پیش فرض به ساده,
و باید یکی از موارد زیر باشد:
رنگ
کلمات تغییر یافته را فقط با استفاده از رنگ ها برجسته کنید. دلالت بر --رنگ دارد.
ساده
نمایش کلمات به صورت [-removed-] و {+added+}. هیچ تلاشی برای فرار از آن نمی کند
جداکننده ها اگر در ورودی ظاهر شوند، بنابراین خروجی ممکن است مبهم باشد.
ظروف چینی
از یک قالب ویژه مبتنی بر خط که برای مصرف اسکریپت در نظر گرفته شده است استفاده کنید.
اجراهای اضافه شده/حذف/بدون تغییر در قالب متفاوت یکپارچه معمول چاپ می شوند.
با یک کاراکتر +/-/`` در ابتدای خط شروع می شود و تا ادامه می یابد
پایان خط. خطوط جدید در ورودی با یک tilde ~ در یک خط نشان داده می شوند
از خود
هیچ
دوباره تفاوت کلمه را غیرفعال کنید.
توجه داشته باشید که با وجود نام حالت اول، از رنگ برای برجسته کردن حالت تغییر شده استفاده می شود
قطعات در تمام حالت ها در صورت فعال بودن.
--word-diff-regex=
استفاده کنید تصمیم بگیرید که یک کلمه چیست، به جای در نظر گرفتن اجراهای بدون فاصله به
یک کلمه باشد همچنین به معنای --word-diff است مگر اینکه قبلاً فعال شده باشد.
هر مسابقه غیر همپوشانی از یک کلمه محسوب می شود. هر چیزی بین
این تطابق ها فضای خالی در نظر گرفته می شود و برای اهداف یافتن نادیده گرفته می شود
تفاوت. ممکن است بخواهید |[^[:space:]] را به عبارت معمولی خود اضافه کنید تا بسازید
مطمئن شوید که با تمام کاراکترهای غیر فضای سفید مطابقت دارد. مسابقه ای که حاوی یک خط جدید است
بی سر و صدا کوتاه شده(!) در خط جدید.
به عنوان مثال، --word-diff-regex=. با هر شخصیت به عنوان یک کلمه برخورد خواهد کرد و
به همین ترتیب، تفاوت ها را شخصیت به شخصیت نشان دهید.
Regex را می توان از طریق یک درایور diff یا گزینه پیکربندی نیز تنظیم کرد
ویژگی های gitat(1) یا گیت(1). دادن آن به صراحت هرگونه درایور متفاوت یا
تنظیمات پیکربندی درایورهای Diff تنظیمات پیکربندی را لغو می کنند.
--color-words[= ]
معادل --word-diff=color plus (اگر Regex مشخص شده بود)
--word-diff-regex= .
-- بدون تغییر نام
تشخیص تغییر نام را خاموش کنید، حتی زمانی که فایل پیکربندی پیشفرض را انجام میدهد
بنابراین.
--بررسی
اگر تغییرات باعث ایجاد خطا در فضای خالی شود، هشدار دهید. آنچه که خطاهای فضای خالی در نظر گرفته می شود این است
توسط پیکربندی core.whitespace کنترل می شود. به طور پیشفرض، فاصلههای سفید انتهایی
(از جمله خطوطی که صرفاً از فضاهای خالی تشکیل شده است) و یک کاراکتر فاصله است
بلافاصله پس از آن یک کاراکتر برگه در داخل تورفتگی اولیه خط قرار دارد
خطاهای فضای خالی در نظر گرفته شده است. در صورت یافتن مشکل با وضعیت غیر صفر خارج می شود. نه
سازگار با -exit-code.
--ws-error-highlight=
خطاهای فضای خالی در خطوط مشخص شده توسط برجسته کنید در رنگ مشخص شده توسط
رنگ.تفاوت.فضای سفید. فهرستی از متن قدیمی، جدید با کاما جدا شده است. چه زمانی
این گزینه داده نمی شود، فقط خطاهای فضای خالی در خطوط جدید برجسته می شوند. به عنوان مثال
--ws-error-highlight=جدید، قدیمی خطاهای فضای خالی را هم در موارد حذف شده و هم اضافه شده برجسته می کند.
خطوط همه را می توان به عنوان یک دست کوتاه برای متن قدیمی، جدید، استفاده کرد.
-- نمایه کامل
به جای تعداد انگشت شماری از شخصیت ها، حباب کامل قبل و بعد از تصویر را نشان دهید
نام اشیاء در خط "شاخص" هنگام تولید خروجی فرمت پچ.
--دودویی
علاوه بر --full-index، یک تفاوت باینری را نیز خروجی بگیرید که می تواند با git-apply اعمال شود.
-- مخفف[= ]
به جای نمایش نام شیء هگزادسیمال کامل 40 بایتی در خروجی فرمت diff-raw
و خطوط سرصفحه درخت تفاوت، فقط یک پیشوند جزئی را نشان می دهد. این مستقل از
گزینه --full-index در بالا، که فرمت خروجی diff-patch را کنترل می کند. غیر پیش فرض
تعداد ارقام را می توان با --abbrev= مشخص کرد .
-B[ ][/ ]، --شکست-بازنویسی[=[ ][/ ]]
تغییرات بازنویسی کامل را به جفت حذف و ایجاد کنید. این در خدمت دو نفر است
اهداف:
این روی روش تغییری که به بازنویسی کلی یک فایل میشود و نه به صورت سری تأثیر میگذارد
حذف و درج با چند خط ترکیب شده است که اتفاقاً مطابقت دارند
از نظر متنی به عنوان زمینه، اما به عنوان یک حذف واحد از همه چیز قدیمی و به دنبال آن a
درج تکی همه چیز جدید، و عدد m این جنبه از -B را کنترل می کند
گزینه (به طور پیش فرض تا 60٪). -B/70% مشخص می کند که کمتر از 30% نسخه اصلی باید
در نتیجه باقی می ماند تا Git آن را یک بازنویسی کامل در نظر بگیرد (یعنی در غیر این صورت
پچ حاصل یک سری حذف و درج مخلوط با متن خواهد بود
خطوط).
هنگامی که با -M استفاده می شود، یک فایل کاملاً بازنویسی شده نیز به عنوان منبع a در نظر گرفته می شود
تغییر نام (معمولا -M فقط فایلی را که ناپدید شده است به عنوان منبع تغییر نام در نظر می گیرد)
و عدد n این جنبه از گزینه -B را کنترل می کند (پیش فرض تا 50٪). -B20٪
مشخص می کند که یک تغییر با اضافه و حذف در مقایسه با 20٪ یا بیشتر از
اندازه فایل برای انتخاب به عنوان منبع احتمالی تغییر نام واجد شرایط است
یک فایل دیگر
-M[ ]، --find-renames[= ]
در صورت ایجاد تفاوت، تغییر نام هر commit را شناسایی و گزارش دهید. برای فایل های زیر
در میان تغییر نام ها در حین عبور از تاریخ، به --follow مراجعه کنید. اگر n مشخص شود، a است
آستانه در شاخص شباهت (یعنی مقدار اضافه/حذف در مقایسه با
اندازه فایل). به عنوان مثال، -M90٪ به این معنی است که Git باید یک جفت حذف/افزودن را یک در نظر بگیرد
اگر بیش از 90 درصد از فایل تغییر نکرده باشد، نام آن را تغییر دهید. بدون علامت %، عدد به است
به صورت کسری خوانده شود و قبل از آن یک اعشار باشد. یعنی -M5 0.5 می شود و می شود
بنابراین همان -M50٪ است. به طور مشابه، -M05 همان -M5٪ است. برای محدود کردن تشخیص به
تغییر نام دقیق، استفاده از -M100%. شاخص شباهت پیش فرض 50٪ است.
-C[ ]، --find-copies[= ]
شناسایی کپی ها و همچنین تغییر نام ها. همچنین به --find-copies-harder مراجعه کنید. اگر n مشخص شده باشد، آن
همان معنی را برای -M دارد .
--پیدا کردن-کپی-سخت تر
به دلایل عملکرد، به طور پیشفرض، گزینه -C تنها در صورتی کپیهای فایل اصلی را پیدا میکند
از نسخه در همان تغییرات تغییر یافته است. این پرچم دستور را بازرسی می کند
فایل های اصلاح نشده به عنوان کاندیدای منبع کپی. این بسیار گران است
عملیات برای پروژه های بزرگ، بنابراین با احتیاط از آن استفاده کنید. دادن بیش از یک گزینه -C
همین اثر را دارد
-D، -- برگشت ناپذیر-حذف
پیش تصویر را برای حذف حذف کنید، یعنی فقط سرصفحه را چاپ کنید، اما تفاوت بین آن را چاپ نکنید
preimage و /dev/null. قرار نیست پچ حاصل با پچ یا اعمال شود
git اعمال می شود. این فقط برای افرادی است که میخواهند فقط روی مرور آن تمرکز کنند
متن بعد از تغییر علاوه بر این، خروجی به وضوح فاقد اطلاعات کافی برای
چنین پچ را به صورت معکوس، حتی به صورت دستی، اعمال کنید، از این رو نام گزینه است.
هنگامی که همراه با -B استفاده می شود، تصویر اولیه را در قسمت حذف a حذف کنید
حذف/ایجاد جفت
-ل
گزینه های -M و -C به زمان پردازش O(n^2) نیاز دارند که n تعداد آنهاست
اهداف بالقوه تغییر نام/کپی این گزینه از اجرای تشخیص تغییر نام/کپی جلوگیری می کند
اگر تعداد اهداف تغییر نام/کپی از تعداد مشخص شده بیشتر شود.
--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
فقط فایل هایی را انتخاب کنید که اضافه شده اند (A)، کپی شده (C)، حذف شده (D)، اصلاح شده (M)، تغییر نام
(R)، نوع آنها (یعنی فایل معمولی، سیملینک، زیر ماژول، ...) تغییر یافته است (T)، هستند
Unmerged (U)، ناشناخته هستند (X)، یا جفت آنها شکسته شده است (B). هر ترکیبی
از کاراکترهای فیلتر (از جمله هیچ کدام) را می توان استفاده کرد. وقتی * (همه یا هیچ) اضافه شود
در ترکیب، اگر فایلی وجود داشته باشد که با فایل دیگری مطابقت داشته باشد، همه مسیرها انتخاب می شوند
معیارها در مقایسه؛ اگر فایلی وجود نداشته باشد که با معیارهای دیگر مطابقت داشته باشد، هیچ چیز
انتخاب شده است.
-س
به دنبال تفاوت هایی باشید که تعداد وقوع رشته مشخص شده را تغییر می دهد
(یعنی اضافه/حذف) در یک فایل. برای استفاده اسکریپت در نظر گرفته شده است.
زمانی مفید است که به دنبال یک بلوک دقیق از کد (مانند یک ساختار) هستید و می خواهید
برای دانستن تاریخچه آن بلوک از زمان پیدایش آن: از این ویژگی استفاده کنید
به طور مکرر بلوک جالب در preimage را به -S برگردانید و ادامه دهید
تا زمانی که اولین نسخه بلوک را دریافت کنید.
-جی
به دنبال تفاوت هایی باشید که متن وصله آنها حاوی خطوط اضافه/حذف شده است که مطابقت دارند .
برای نشان دادن تفاوت بین -S -- pickaxe-regex و -G ، در نظر گرفتن
یک commit با تفاوت زیر در همان فایل:
+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);
در حالی که git log -G"regexec\(regexp" این commit را نشان می دهد، git log -S"regexec\(regexp"
--pickaxe-regex نخواهد شد (زیرا تعداد رخدادهای آن رشته وجود نداشت
تغییر دادن).
مشاهده pickaxe ورود به gitdiffcore(7) برای اطلاعات بیشتر
-- کلنگ
وقتی -S یا -G تغییری را پیدا کرد، همه تغییرات را در آن مجموعه تغییرات نشان دهید، نه فقط آن را
فایل هایی که حاوی تغییر در هستند .
--کلنگ-رجکس
درمان کنید به -S به عنوان یک عبارت منظم POSIX توسعه یافته برای مطابقت داده می شود.
-O
خروجی پچ را به ترتیب مشخص شده در ، که دارای یک کره پوسته است
الگوی در هر خط این متغیر پیکربندی diff.orderFile را لغو می کند (نگاه کنید به git-
پیکربندی(1)). برای لغو diff.orderFile، از -O/dev/null استفاده کنید.
-R
تعویض دو ورودی؛ یعنی تفاوتها را از فهرست یا فایل روی دیسک به درخت نشان دهید
فهرست.
--نسبی[= ]
هنگامی که از یک زیر شاخه پروژه اجرا می شود، می توان به آن گفت که تغییرات خارج را حذف کند
دایرکتوری و با این گزینه نام مسیرهای مربوط به آن را نشان دهید. وقتی داخل نیستی
یک زیر شاخه (مثلاً در یک مخزن خالی)، میتوانید فهرست فرعی را نام ببرید
خروجی نسبت به با دادن a به عنوان یک استدلال
-یک متن
همه فایل ها را به عنوان متن در نظر بگیرید.
- نادیده گرفتن-space-at-eol
تغییرات فضای خالی در EOL را نادیده بگیرید.
-b، --نادیده گرفتن-فضا-تغییر
تغییرات در مقدار فضای خالی را نادیده بگیرید. این فضای خالی در انتهای خط را نادیده می گیرد و
تمام دنباله های دیگر یک یا چند کاراکتر فضای خالی را معادل در نظر می گیرد.
-w، --نادیده گرفتن-همه-فضا
هنگام مقایسه خطوط، فضای خالی را نادیده بگیرید. این تفاوت ها را نادیده می گیرد حتی اگر یک خط داشته باشد
فضای خالی که در آن خط دیگر هیچ وجود ندارد.
-نادیده گرفتن-خطوط خالی
تغییراتی را که همه خطوط آن خالی است نادیده بگیرید.
--inter-hunk-context=
به این ترتیب، زمینه را تا تعداد خطوط مشخص شده بین بخش های مختلف نشان دهید
درهم آمیختن قطعاتی که به هم نزدیک هستند.
-W، --function-context
نمایش کل توابع اطراف تغییرات.
--ext-diff
اجازه دهید یک کمک کننده تفاوت خارجی اجرا شود. اگر یک درایور متفاوت خارجی را با
ویژگی های gitat(5)، باید از این گزینه استفاده کنید گیت(1) و دوستان
--بدون تفاوت
درایورهای تفاوت خارجی را مجاز نکنید.
--textconv، --no-textconv
در هنگام مقایسه باینری، فیلترهای تبدیل متن خارجی اجرا شوند (یا غیر مجاز).
فایل ها. دیدن ویژگی های gitat(5) برای جزئیات. از آنجا که فیلترهای textconv معمولاً a هستند
تبدیل یک طرفه، تفاوت حاصل برای مصرف انسان مناسب است، اما نمی تواند
اعمال می شود. به همین دلیل، فیلترهای textconv به طور پیش فرض فقط برای فعال هستند git-
تفاوت(1) و گیت(1)، اما نه برای گیت-قالب(1) یا تفاوت دستورات لوله کشی.
--ignore-submodules[= ]
تغییرات زیر ماژول ها را در نسل diff نادیده بگیرید. می تواند "هیچ" باشد،
«ردیابی نشده»، «کثیف» یا «همه» که پیشفرض است. استفاده از "هیچ" این را در نظر می گیرد
زمانی که زیر ماژول حاوی فایلهای ردیابی نشده یا اصلاحشده یا HEAD باشد، اصلاح میشود
با commit ثبت شده در ابرپروژه متفاوت است و می توان از آن برای نادیده گرفتن هر کدام استفاده کرد
تنظیمات چشم پوشی از گزینه در گیت(1) یا gitmodules(5). وقتی "ردیابی نشده" است
زیر ماژول های استفاده شده زمانی کثیف تلقی نمی شوند که فقط حاوی محتوای ردیابی نشده باشند (اما
آنها هنوز برای محتوای اصلاح شده اسکن می شوند). استفاده از "کثیف" همه تغییرات را نادیده می گیرد
درخت کاری از زیر ماژول ها، تنها تغییراتی در commit های ذخیره شده در ابر پروژه می باشد
نشان داده شده است (این رفتار تا 1.7.0 بود). استفاده از "همه" همه تغییرات را پنهان می کند
زیر ماژول ها
--src-prefix=
پیشوند منبع داده شده را به جای "a/" نشان دهید.
--dst-prefix=
نمایش پیشوند مقصد داده شده به جای "b/".
--بدون پیشوند
هیچ پیشوند منبع یا مقصد را نشان ندهید.
برای توضیح بیشتر در مورد این گزینه های رایج، همچنین نگاه کنید gitdiffcore(7).
تولید صفحات با -P
هنگامی که "git-diff-index"، "git-diff-tree" یا "git-diff-files" با یک -p گزینه، "git
تفاوت" بدون -- خام گزینه، یا "git log" با گزینه "-p"، آنها را تولید نمی کنند
خروجی شرح داده شده در بالا؛ در عوض آنها یک فایل پچ تولید می کنند. شما می توانید ایجاد را سفارشی کنید
چنین وصله هایی از طریق متغیرهای محیطی GIT_EXTERNAL_DIFF و GIT_DIFF_OPTS.
چیزی که گزینه -p تولید می کند کمی با فرمت diff سنتی متفاوت است:
1. قبل از آن یک هدر "git diff" به شکل زیر است:
diff --git a/file1 b/file2
نام فایل های a/ و b/ یکسان هستند، مگر اینکه تغییر نام/کپی در کار باشد. به خصوص، حتی
برای ایجاد یا حذف، /dev/null است نه به جای a/ یا b/ استفاده می شود
نام فایل ها
وقتی تغییر نام/کپی در میان باشد، file1 و file2 نام فایل منبع را نشان میدهند
rename/copy و نام فایلی که rename/copy تولید می کند، به ترتیب.
2. یک یا چند خط سرصفحه توسعه یافته دنبال می شود:
حالت قدیمی
حالت جدید
حالت فایل حذف شده
حالت فایل جدید
کپی از
کپی به
تغییر نام از
تغییر نام به
شاخص شباهت
شاخص عدم تشابه
فهرست مطالب ..
حالت های فایل به صورت اعداد هشت رقمی 6 رقمی از جمله نوع فایل و فایل چاپ می شوند
بیت های مجوز
نام مسیرها در هدرهای توسعه یافته شامل پیشوندهای a/ و b/ نمی شود.
شاخص تشابه درصد خطوط بدون تغییر و شاخص عدم تشابه است
درصد تغییر خطوط است. این یک عدد صحیح گرد شده و به دنبال آن a است
علامت درصد بنابراین مقدار شاخص شباهت 100% برای دو فایل مساوی محفوظ است.
در حالی که 100٪ عدم تشابه به این معنی است که هیچ خطی از فایل قدیمی وارد فایل جدید نشده است
یک.
خط شاخص شامل جمع چک SHA-1 قبل و بعد از تغییر است. در است
در صورتی که حالت فایل تغییر نکند گنجانده شده است. در غیر این صورت، خطوط جداگانه نشان دهنده قدیمی بودن است
و حالت جدید
3. کاراکترهای TAB، LF، دو نقل قول و بک اسلش در نام مسیرها به صورت \t، \n، نشان داده میشوند.
\" و \\، به ترتیب. اگر نیاز به چنین جایگزینی وجود دارد، کل
pathname در دو گیومه قرار می گیرد.
4. تمام فایل های file1 در خروجی به فایل های قبل از commit و تمام فایل های2 اشاره دارند
فایل ها به فایل های پس از commit اشاره می کنند. اعمال هر تغییر برای هر کدام نادرست است
به صورت متوالی فایل کنید به عنوان مثال، این وصله a و b را تعویض می کند:
diff --git a/ab/b
تغییر نام از a
تغییر نام به b
diff --git a/bb/a
تغییر نام از ب
تغییر نام به a
ترکیب شده متفاوت FORMAT
هر فرمان ایجاد کننده تفاوت می تواند از گزینه -c یا --cc برای تولید a استفاده کند ترکیب شده تفاوت چه زمانی
نشان دادن ادغام این فرمت پیش فرض هنگام نمایش ادغام با است git-diff(1) یا git-
نشان(1). همچنین توجه داشته باشید که می توانید گزینه -m را به هر یک از این دستورات برای اجبار بدهید
نسل تفاوت با والدین فردی یک ادغام.
A ترکیب شده تفاوت فرمت به این صورت است:
diff --combined describe.c
index fabadb8,cc95eb0..4866510
--- a/describe.c
+++ b/describe.c
@@@ -98,20 -98,12 +98,20 @@@
بازگشت (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}
- توصیف فضای خالی استاتیک (char *arg)
-static void describe(struct commit *cmit, int last_one)
++ استاتیک void describe (char *arg، int last_one)
{
+ char sha1[20] بدون علامت;
+ struct commit *cmit;
ساختار commit_list *list;
static int مقداردهی اولیه = 0;
ساختار commit_name *n;
+ if (get_sha1(arg، sha1) < 0)
+ usage (describe_usage);
+ cmit = lookup_commit_reference(sha1);
+ if (!cmit)
+ usage (describe_usage);
+
if (!initialized) {
مقداردهی اولیه = 1;
for_each_ref (get_name);
1. قبل از آن یک هدر "git diff" قرار می گیرد که به این شکل است (وقتی -c گزینه است
استفاده شده):
diff -- فایل ترکیبی
یا مانند این (زمانی که -- سی سی گزینه استفاده می شود):
فایل diff --cc
2. یک یا چند خط سرصفحه توسعه یافته دنبال می شود (این مثال ادغام با را نشان می دهد
دو والدین):
فهرست مطالب ، ..
حالت ، ..
حالت فایل جدید
حالت فایل حذف شده ،
حالت ، .. خط فقط در صورتی ظاهر می شود که حداقل یکی از آن ها باشد است
متفاوت از بقیه هدرهای گسترده با اطلاعات مربوط به محتوای شناسایی شده
حرکت (تغییر نام و تشخیص کپی) برای کار با تفاوت دو طراحی شده است
و با فرمت تفاوت ترکیبی استفاده نمی شوند.
3. هدر دو خطی از فایل/به فایل دنبال می شود
--- یک فایل
+++ b/file
مشابه هدر دو خطی برای سنتی یکپارچه فرمت diff، /dev/null استفاده می شود
سیگنال ایجاد یا حذف فایل ها
4. قالب هدر تکه برای جلوگیری از تغذیه تصادفی افراد به آن اصلاح شده است
پچ -p1. فرمت تفاوت ترکیبی برای بررسی تغییرات ادغام commit ایجاد شد و
برای درخواست در نظر گرفته نشده بود تغییر مشابه تغییر در توسعه یافته است شاخص
سرتیتر:
@@@ @@@
(تعداد والدین + 1) کاراکترهای @ در هدر تکه برای تفاوت ترکیبی وجود دارد
فرمت.
برخلاف سنتی یکپارچه فرمت diff که دو فایل A و B را با یک واحد نشان می دهد
ستونی که - (منهای - در A ظاهر می شود اما در B حذف می شود)، + (به علاوه - در A اما وجود ندارد
اضافه شده به B)، یا پیشوند " " (فاصله — بدون تغییر)، این قالب دو یا چند فایل را مقایسه می کند
file1، file2،... با یک فایل X، و نشان می دهد که X چگونه با هر یک از fileN تفاوت دارد. یک ستون
برای هر یک از fileN به خط خروجی اضافه می شود تا مشخص شود که خط X با چه تفاوتی دارد
آن است.
A - کاراکتر در ستون N به این معنی است که خط در fileN ظاهر می شود اما ظاهر نمی شود
در نتیجه کاراکتر + در ستون N به این معنی است که خط در نتیجه ظاهر می شود،
و fileN آن خط را ندارد (به عبارت دیگر، خط از نقطه اضافه شده است
دیدگاه آن والدین).
در خروجی مثال بالا، امضای تابع از هر دو فایل تغییر کرد (از این رو دو فایل
- حذف از هر دو file1 و file2، به علاوه ++ به این معنی که یک خط اضافه شده است
در file1 یا file2 ظاهر می شود). همچنین هشت خط دیگر از file1 یکسان هستند اما انجام می دهند
در file2 ظاهر نمی شود (از این رو با پیشوند +).
هنگامی که با git diff-tree -c نشان داده می شود، والدین یک تعهد ادغام را با ادغام مقایسه می کند.
نتیجه (یعنی file1..fileN والدین هستند). وقتی با git diff-files -c نشان داده می شود، مقایسه می شود
دو والد حل نشده با فایل درخت کاری ادغام می شوند (یعنی file1 مرحله 2 است
"نسخه ما"، file2 مرحله 3 با نام "نسخه آنها" است).
مثال ها
git show v1.0.0
تگ v1.0.0 را به همراه شیئی که تگ ها به آن اشاره می کنند نشان می دهد.
git show v1.0.0^{tree}
درختی را نشان می دهد که توسط تگ v1.0.0 به آن اشاره شده است.
git show -s --format=%s v1.0.0^{commit}
موضوع commit را نشان می دهد که توسط تگ v1.0.0 به آن اشاره شده است.
git show next~10: Documentation/README
محتویات فایل Documentation/README را همانطور که در 10th موجود بود نشان می دهد
آخرین کامیت شعبه بعدی
git show master:Makefile master:t/Makefile
محتویات Makefiles گفته شده را در سر شعبه اصلی الحاق می کند.
بحث
Git تا حدودی رمزگذاری کاراکتر آگنوستیک است.
· محتویات اشیاء blob دنباله های تفسیر نشده بایت هستند. وجود ندارد
ترجمه رمزگذاری در سطح اصلی
· نام مسیرها در فرم عادی سازی UTF-8 C کدگذاری شده است. این برای اشیاء درختی اعمال می شود.
فایل فهرست، نام های ref، و همچنین نام مسیرها در آرگومان های خط فرمان،
متغیرهای محیط و فایلهای پیکربندی (git/config. (نگاه کنید به گیت(1) ، gitignore(5)
ویژگی های gitat(5) و gitmodules(5).
توجه داشته باشید که Git در سطح هسته، نام مسیرها را صرفاً به عنوان دنباله هایی از غیر NUL در نظر می گیرد
بایت، هیچ تبدیل نام مسیری وجود ندارد (به جز در مک و ویندوز).
بنابراین، استفاده از نام مسیرهای غیر ASCII بیشتر حتی بر روی پلتفرم ها و فایل ها نیز کار می کند
سیستم هایی که از رمزگذاری های توسعه یافته ASCII قدیمی استفاده می کنند. با این حال، مخازن ایجاد شده در
چنین سیستم هایی در سیستم های مبتنی بر UTF-8 (مانند لینوکس، مک، ویندوز) به درستی کار نمی کنند.
و بالعکس. علاوه بر این، بسیاری از ابزارهای مبتنی بر Git به سادگی نام مسیرها را فرض میکنند
UTF-8 و دیگر کدگذاری ها را به درستی نمایش نمی دهد.
· پیام های گزارش commit معمولاً در UTF-8 رمزگذاری می شوند، اما سایر رمزگذاری های ASCII توسعه یافته
نیز پشتیبانی می شوند. این شامل ISO-8859-x، CP125x و بسیاری دیگر است، اما نه
کدگذاری چند بایتی UTF-16/32، EBCDIC و CJK (GBK، Shift-JIS، Big5، EUC-x، CP9xx
و غیره).
اگرچه ما تشویق می کنیم که پیام های گزارش commit در UTF-8 کدگذاری شده باشند، هم هسته و هم
Git Porcelain طوری طراحی شده است که UTF-8 را به پروژه ها تحمیل نمی کند. اگر همه شرکت کنندگان الف
پروژه خاصی استفاده از رمزگذاری های قدیمی را راحت تر می داند، Git منع نمی کند
آی تی. با این حال، چند نکته وجود دارد که باید در نظر داشت.
1. دستگاه گوارش مرتکب شدن و دستگاه گوارش commit-tree اگر پیغام commit log به آن داده شود، اخطار می دهد
مانند یک رشته معتبر UTF-8 به نظر نمی رسد، مگر اینکه به صراحت بگویید پروژه شما از a استفاده می کند
رمزگذاری قدیمی راه برای گفتن این است که i18n.commitencoding در git/config
فایل، مانند این:
[i18n]
commitencoding = ISO-8859-1
اشیاء Commit ایجاد شده با تنظیم بالا مقدار i18n.commitencoding را ثبت می کنند
در هدر رمزگذاری آن این برای کمک به افرادی است که بعداً به آنها نگاه می کنند. فقدان
این هدر نشان می دهد که پیام commit log در UTF-8 کدگذاری شده است.
2. دستگاه گوارش ورود به سیستم, دستگاه گوارش نشان, دستگاه گوارش سرزنش و دوستان به سربرگ رمزگذاری یک commit نگاه می کنند
شی، و سعی کنید پیام ورود به سیستم را مجدداً در UTF-8 کدگذاری کنید، مگر اینکه طور دیگری مشخص شده باشد. شما
می تواند کدگذاری خروجی مورد نظر را با i18n.logoutputencoding در git/config.
فایل، مانند این:
[i18n]
کدگذاری خروجی = ISO-8859-1
اگر این متغیر پیکربندی را ندارید، مقدار i18n.commitencoding است
به جای استفاده می شود
توجه داشته باشید که ما عمداً تصمیم گرفتیم زمانی که یک commit وجود دارد، پیام گزارش commit را دوباره کدگذاری نکنیم.
ساخته شده برای اجبار UTF-8 در سطح شی commit، زیرا کدگذاری مجدد به UTF-8 نیست
لزوماً یک عمل برگشت پذیر.
GIT
بخشی از دستگاه گوارش(1) سوئیت
از git-show به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید