سرفصل‌های آموزشی
آموزش کاربردی گیت برای برنامه نویسان
Git archive چیست؟

Git archive چیست؟

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

 Git archive چه کاری انجام می‌دهد؟

git archive یک دستور خط فرمان Git است که یک فایل آرشیو از قسمت‌های مختلف Git مانند commit ها، شاخه ها یا درخت ها ایجاد می‌کند. دستور git archive ورودی‌هایی می پذیرد که نوع خروجی را تغییر می‌دهد.

مثال‌هایی برای خروجی گرفتن از Git


یکی از مثال‌های بسیار ساده git archive به شرح زیر است:

git archive --format=tar HEAD

این دستور پس از اجرا، آرشیوی از HEAD مخزن ایجاد می‌کند. به طور پیش‌فرض، git archive خروجی آرشیو را به stdout موقت منتقل می‌کند که باید این خروجی را در یک فایل دائمی ذخیره کنیم. با استفاده از گزینه output در git archive می‌توان یک فایل دائمی تعیین کرد یا این که با استفاده از سیستم‌عامل مسیر stdout را تغییر داد.

git archive --output=./example_repo_archive.tar --format=tar HEAD

مثال بالا یک آرشیو جدید ایجاد کرده و آن را در فایل  example_repo_archive.tar ذخیره می‌کند. مثال‌های قبلی هر دو خروجی آرشیو فشرده نشده را ایجاد کرده‌اند. این با گزینه format=tar-- مشخص می‌شود. گزینه ی format قالب های محبوب فایل فشرده zip و tar.gz را می پذیرد. با انتخاب یکی از گزینه‌های format، یک آرشیو فشرده تولید می‌شود. اگر یک مقدار format تعیین نشود، از هر قالبی که در گزینه output-- مشخص شده استفاده می‌شود.

git archive --output=./example_repo_archive.tar.gz –-format=tar HEAD ./build

برای ایجاد آرشیو از یک بخش مخزن باید مسیر آن بخش را در انتهای دستور اضافه کرد. در مثال بالا build/. مقدار یک آرگومان از نوع مسیر برای دستور archive است. این دستور، یک آرشیو شامل فایل‌های ذخیره‌ شده در داخل پوشه ی build/. را ایجاد خواهد کرد. ​

Options


مثال‌های قبلی، برخی از متداول‌ترین موارد استفاده از آرشیو Git را نشان دادند. موارد زیر گزینه‌های گسترده‌ تری هستند که می‌توانید از آن‌ها برای آرشیو Git استفاده کنید.

--prefix=<prefix>/

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

--remote=<repo>

گزینه ی remote آدرس یک مخزن remote را می پذیرد. اگر از گزینه ی  remote استفاده شود، git-archive، مخزن آدرس داده شده در remote را می‌گیرد و اگر روی remote موجود باشد، یک آرشیو از منبع مشخص در remote اصلی ایجاد می‌کند.

پیکربندی

چند مقدار کلی پیکربندی Git وجود دارد که به آن‌ها خواهیم پرداخت. این مقادیر را می‌توان با استفاده از دستور.<git config <link to git config تنظیم کرد.

tar.<format>.command

این گزینه پیکربندی، اجازه تعیین shell command سفارشی را می‌دهد، که خروجی git-archive از طریق آن اجرا خواهد شد. این شبیه به حذف گزینه ی output-- و لوله ‌کشی خروجی از آرشیو Git به یک ابزار سفارشی است. این امر آرشیو ثابت سفارشی را پس از پردازش فعال می‌کند.

tar.<format>.command

این دستور به مشتریان remote اجازه می‌دهد تا آرشیوهایی با فرمت دلخواه خود را به دست آورند.

نتیجه​


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

online-support-icon