হ্যাঁ, 100k বাবা-মা কেমন আছেন?
100 কে কমিটের একীভূতকরণের সাথে এখানে একটি লাইভ গিটহাব উদাহরণ রয়েছে: https://github.com/cirosantilli/test-octopus-100k এই স্ক্রিপ্টটি দিয়ে তৈরি করা হয়েছে ।
তুচ্ছ বস্তু
লিনাস 60 টিরও বেশি পিতা-মাতার সাথে চুক্তি পছন্দ করে না: https://www.destroyallsoftware.com/blog/2017/the-biggest-and-Wirdest-commits-in-linux-kernel-git-history
এটি টানছে, এবং এটি ঠিক আছে, তবে "অক্টোপাস মার্জগুলি ভাল আছে" এবং "খ্রিস্ট, এটি কোনও অক্টোপাস নয়, এটি একটি চথুলহু মার্জিন" এর মধ্যে স্পষ্টতই একটি ভারসাম্য রয়েছে।
গিট কমিট অবজেক্টের ফর্ম্যাটটি দেখুন
https://stackoverflow.com/questions/22968856/what-is-the-file-format-of-a-git-commit-object/37438460#37438460
সেই বিশ্লেষণ থেকে, আমরা দেখতে পাচ্ছি যে পিতামাতার তালিকার তালিকাটি একটি স্বেচ্ছাসেবক নিউলাইন পৃথক প্রকারের তালিকা:
parent {parent_1_sha}
parent {parent_2_sha}
...
parent {parent_N_sha}
এবং তাই অভিভাবকদের একটি স্বেচ্ছাসেবী অনুমতি দেওয়া হয়।
নূন্যতম উদাহরণ
লিপি:
#!/usr/bin/env bash
set -eu
mkdir tmp
cd tmp
git init
touch root
git add .
git commit -m root
sha_root="$(git log -1 --format="%H")"
touch 1
git add .
git commit -m 1
sha1="$(git log -1 --format="%H")"
git reset --hard "$sha_root"
touch 2
git add .
git commit -m 2
sha2="$(git log -1 --format="%H")"
git reset --hard "$sha_root"
touch 3
git add .
git commit -m 3
sha3="$(git log -1 --format="%H")"
git merge -m merge "$sha1" "$sha2"
আউটপুট:
*-. 2d2a6c2 (HEAD -> master) merge
|\ \
| | * 2300c18 2
| * | 7e096cb 1
| |/
* | 50aa125 3
|/
* a1e94fd root