গিট সংগ্রহস্থলের আকার খুঁজুন


283

আমার গিট সংগ্রহস্থলের আকার খুঁজে পাওয়ার সহজ উপায় কী?

এবং আমি du -hআমার সংগ্রহস্থলের মূল ডিরেক্টরিটি বোঝাতে চাই না । আমার কাছে প্রচুর উপেক্ষা করা ফাইল রয়েছে, সুতরাং সেই আকারটি আমার মোট সংগ্রহস্থলের আকার থেকে আলাদা হবে। আমি মূলত আমার ডিপোজিটরি ক্লোনিংয়ের পরে কতটা ডেটা স্থানান্তরিত হবে তা জানতে চাই।


উত্তর:


260

আপডেট Git 1.8.3 একটা মোটামুটি আকার পেতে আরও কার্যকর উপায় চালু: git count-objects -vH(@VonC দ্বারা উত্তর দেখুন)

"সম্পূর্ণ আকার" এর বিভিন্ন ধারণার জন্য আপনি ব্যবহার করতে পারেন:

git bundle create tmp.bundle --all
du -sh tmp.bundle

বন্ধ (তবে সঠিক নয় :)

git gc
du -sh .git/

পরেরটির সাথে আপনিও গণনা করতে পারবেন:

  • আঙ্গুলসমূহ
  • কনফিগারেশন (রিমোটস, পুশ শাখা, সেটিংস (সাদা স্থান, মার্জ, উপকরণ, ব্যবহারকারীর বিবরণ ইত্যাদি)
  • স্ট্যাশস (দেখুন আমি কি কোনও স্থানীয় শাখায় দূরবর্তী রেপো থেকে স্ট্যাশ আনতে পারি? এছাড়াও)
  • পুনরায় ক্যাশে (যা যথেষ্ট পরিমাণে পেতে পারে)
  • reflogs
  • ব্যাকআপ (ফিল্টার-শাখা থেকে, উদাহরণস্বরূপ) এবং অন্যান্য বিভিন্ন জিনিস (রিবাজ, দ্বিখণ্ডিত ইত্যাদি থেকে মধ্যবর্তী অবস্থা)

ধন্যবাদ! প্রথম আচরণটি আরও সঠিকভাবে মোট ক্লোন আকারকে প্রতিবিম্বিত করে তবে দ্বিতীয়টিটি বেশ কাছাকাছি ছিল।
মিশচালার্ট

7
দ্রষ্টব্য: এই উত্তরটি পুরানো। গিট সংস্করণ> = 1.8.3 এর পরিবর্তে ভনসির উত্তর দেখুন ।
জন ডিবলিং

আমার উত্তরটি আরও সম্পূর্ণরূপে একটি উপায়, এটির নিজস্ব যোগ্যতা থাকতে পারে তাও নোট করুন।
sehe

আপনি কি যুক্ত করতে পারেন git bundleএবং git gcআসলে কি করে? এটি কি অন্য (অযাচিত) সংরক্ষণাগার তৈরি করবে এবং তারপরে আকারটি পরিমাপ করবে?
রমেশ পরিক

1
@ রমেশপ্যারিক হ্যাঁ এটি বেশ স্পষ্ট কারণ আমি duসেই ফাইলটির আকার পরিমাপ করতে ব্যবহার করছি ।

252

নোট করুন, গিট 1.8.3 সাল থেকে (এপ্রিল, 22 ডি 2013) :

" git count-objects" শিখেছি " --human-readableওরফে" " -H" বিভিন্ন বৃহৎ সংখ্যক দেখানোর জন্য বিকল্প Ki/ Mi/ GiBপ্রয়োজনীয় হিসাবে ছোটো।

যে সঙ্গে মিলিত হতে পারে -vউল্লেখ বিকল্প জ্যাক মরিসন মধ্যে তার উত্তর

git gc
git count-objects -vH

( git gcযেমন দ্বারা উল্লেখ করা হয়েছে, গুরুত্বপূর্ণ এবিবি এর উত্তর )

প্লাস (এখনও 1.8.3 গিট), আউটপুট আরও সম্পূর্ণ:

" git count-objects -v" অবজেক্ট স্টোরের অবশিষ্ট অস্থায়ী প্যাকফিল এবং অন্যান্য জঞ্জালগুলির প্রতিবেদন করতে শিখেছি ।


116

গিট কমান্ড

git count-objects -v

গিট সংগ্রহস্থলের আকারের একটি ভাল অনুমান আপনাকে দেবে। -V পতাকা ব্যতীত, এটি আপনাকে কেবল আপনার আনপ্যাক করা ফাইলের আকারই বলে দেয়। এই কমান্ডটি আপনার $ PATH এ নাও থাকতে পারে, আপনাকে এটি ট্র্যাক করতে হতে পারে (উদাহরণস্বরূপ উবুন্টুতে আমি এটি পেয়েছি / usr / lib / git-core / এ)।

গিট ম্যান-পৃষ্ঠা থেকে:

-v, --verbose

Looseিলে objectsালা বস্তু এবং ডিস্ক স্পেসের ব্যবহারের সংখ্যা ছাড়াও, এটি ইন-প্যাক অবজেক্টের সংখ্যা, প্যাকগুলির সংখ্যা, pac প্যাকগুলি দ্বারা ব্যবহৃত ডিস্ক স্পেস এবং গিট প্রুন-প্যাক চালিয়ে অপসারণযোগ্য বস্তুর সংখ্যা সম্পর্কে প্রতিবেদন করে।

আপনার আউটপুট নিম্নলিখিত অনুরূপ দেখতে পাবেন:

count: 1910
size: 19764
in-pack: 41814
packs: 3
size-pack: 1066963
prune-packable: 1
garbage: 0

আপনি যে লাইনটি সন্ধান করছেন তা হ'ল size-pack। এটি সমস্ত প্যাকড কমিট অবজেক্টের আকার বা নতুন ক্লোন করা সংগ্রহস্থলের জন্য ক্ষুদ্রতম আকার।


4
আমার অভিজ্ঞতায়, git count-objects -vযখন কাজ git-count-objects -vকরে না তখন কাজ করে (কারণ এটি আমার পাঠে নেই)।
mwolfetech

5
@psihodelia দেখে মনে হচ্ছে আপনাকে দৌড়ানোর git gcআগে দৌড়াতে হতে পারে git count-objects -vকারণ আপনার সংগ্রহশালাটি এখনও প্যাক না হয়ে থাকতে পারে। প্রমাণের জন্য এখানে প্রথম উত্তরটি দেখুন: stackoverflow.com/questions/3532740/…
জ্যাক মরিসন

5
আপনি শুধুমাত্র পছন্দসই লাইন পেতে, grep ব্যবহার করতে পারেন: git count-objects -vH | grep 'size-pack'Hমানব পাঠযোগ্য বিন্যাসে দেখানোর জন্য যেমন @VonC তার উত্তর এ খবর জানায়।
alko989

git count-objects --help: সাইজ-প্যাক: কিবি-তে প্যাকগুলি দ্বারা
গ্রাহিত

5

আপনি ব্যবহার করতে পারে git-sizer। ইন --verboseসেটিং, উদাহরণস্বরূপ আউটপুট (নীচে) হয়। Total size of filesলাইন জন্য দেখুন ।

$ git-sizer --verbose
Processing blobs: 1652370
Processing trees: 3396199
Processing commits: 722647
Matching commits to trees: 722647
Processing annotated tags: 534
Processing references: 539
| Name                         | Value     | Level of concern               |
| ---------------------------- | --------- | ------------------------------ |
| Overall repository size      |           |                                |
| * Commits                    |           |                                |
|   * Count                    |   723 k   | *                              |
|   * Total size               |   525 MiB | **                             |
| * Trees                      |           |                                |
|   * Count                    |  3.40 M   | **                             |
|   * Total size               |  9.00 GiB | ****                           |
|   * Total tree entries       |   264 M   | *****                          |
| * Blobs                      |           |                                |
|   * Count                    |  1.65 M   | *                              |
|   * Total size               |  55.8 GiB | *****                          |
| * Annotated tags             |           |                                |
|   * Count                    |   534     |                                |
| * References                 |           |                                |
|   * Count                    |   539     |                                |
|                              |           |                                |
| Biggest objects              |           |                                |
| * Commits                    |           |                                |
|   * Maximum size         [1] |  72.7 KiB | *                              |
|   * Maximum parents      [2] |    66     | ******                         |
| * Trees                      |           |                                |
|   * Maximum entries      [3] |  1.68 k   | *                              |
| * Blobs                      |           |                                |
|   * Maximum size         [4] |  13.5 MiB | *                              |
|                              |           |                                |
| History structure            |           |                                |
| * Maximum history depth      |   136 k   |                                |
| * Maximum tag depth      [5] |     1     |                                |
|                              |           |                                |
| Biggest checkouts            |           |                                |
| * Number of directories  [6] |  4.38 k   | **                             |
| * Maximum path depth     [7] |    13     | *                              |
| * Maximum path length    [8] |   134 B   | *                              |
| * Number of files        [9] |  62.3 k   | *                              |
| * Total size of files    [9] |   747 MiB |                                |
| * Number of symlinks    [10] |    40     |                                |
| * Number of submodules       |     0     |                                |

[1]  91cc53b0c78596a73fa708cceb7313e7168bb146
[2]  2cde51fbd0f310c8a2c5f977e665c0ac3945b46d
[3]  4f86eed5893207aca2c2da86b35b38f2e1ec1fc8 (refs/heads/master:arch/arm/boot/dts)
[4]  a02b6794337286bc12c907c33d5d75537c240bd0 (refs/heads/master:drivers/gpu/drm/amd/include/asic_reg/vega10/NBIO/nbio_6_1_sh_mask.h)
[5]  5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c (refs/tags/v2.6.11)
[6]  1459754b9d9acc2ffac8525bed6691e15913c6e2 (589b754df3f37ca0a1f96fccde7f91c59266f38a^{tree})
[7]  78a269635e76ed927e17d7883f2d90313570fdbc (dae09011115133666e47c35673c0564b0a702db7^{tree})
[8]  ce5f2e31d3bdc1186041fdfd27a5ac96e728f2c5 (refs/heads/master^{tree})
[9]  532bdadc08402b7a72a4b45a2e02e5c710b7d626 (e9ef1fe312b533592e39cddc1327463c30b0ed8d^{tree})
[10] f29a5ea76884ac37e1197bef1941f62fda3f7b99 (f5308d1b83eba20e69df5e0926ba7257c8dd9074^{tree})

1
এটি দুর্দান্ত কারণ এটি মোট মোট ক্লোনিং আকারের চেয়ে বেশি তথ্য দেখায়। একটি জিনিস এটি দেখায় না যে আমি এখনও জানতে চাই তা হ'ল ডাউনলোড করা থাকলে জিপটি কত বড় হবে (এতে সমস্ত কমিট থাকে না)।
এনএইচ।

@ ইন্দ্রজিৎগৌড়: আপনাকে github.com/github/git-sizer/#getting- স্টার্ট থেকে ইনস্টল করতে হবে । ডাউনলোডগুলি github.com/github/git-sizer/releasesরয়েছে
সার্ভ-ইন

@ ডাউনভোটার তার যুক্তি ব্যাখ্যা করার জন্য যত্ন নেবে, না?
সার্ভ-ইন

1

আপনি যদি গিট এলএফএস ব্যবহার করেন তবে গিট কাউন্ট-অবজেক্টগুলি আপনার বাইনারিগুলি গণনা করে না, তবে কেবলমাত্র তাদের কাছে পয়েন্টার রয়েছে।

যদি আপনার এলএফএস ফাইলগুলি আর্টিফ্যাক্টরিস দ্বারা পরিচালিত হয় তবে আপনার উচিত REST এপিআই:

  • যে কোনও অনুসন্ধান ইঞ্জিন থেকে www.jfrog.com API পান
  • সংগ্রহস্থলের সংক্ষিপ্তসার তথ্যটি দেখুন

1

আমি মনে করি এটি রেপো ইতিহাসের সমস্ত ফাইলের মোট তালিকা দেয়:

git rev-list --objects --all | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc

আপনি প্রতিস্থাপন করতে পারেন --allএকটি treeish (সঙ্গে HEAD, origin/masterএকটি শাখা আকার নিরূপণ করা, ইত্যাদি)।


-1

যদি সংগ্রহশালাটি গিটহাবটিতে থাকে , আপনি ওপেন সোর্স অ্যান্ড্রয়েড অ্যাপ্লিকেশন অক্টোড্রয়েড ব্যবহার করতে পারেন যা ডিফল্টরূপে সংগ্রহস্থলের আকার প্রদর্শন করে।

উদাহরণস্বরূপ, mptcp সংগ্রহস্থল সহ:

অক্টোড্রয়েডে মাল্টিপাথ টিসিপি সংগ্রহস্থলের আকার

ক্লোনিংয়ের সময় সংগ্রহস্থলের আকার

দাবি অস্বীকার: আমি অক্টোড্রয়েড তৈরি করিনি।


1
তারা বিভিন্ন ইউনিটে (জিবি এক্স জিআইবি) রয়েছে। যাইহোক, 1.71 গিগাবাইট = 1.84 জিআইবি, কেবল রূপান্তর করছে এবং রাউন্ডগুলি যত্ন করে না।
লুকিয়ানো

দুঃখিত, টাইপ করার সময় আমি তাদের মিশ্রিত করেছি, সঠিক সম্পর্ক: 1.71 জিবি = 1.84 গিগাবাইট
লুসিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.