আপনি এখানে যে মূল জিনিসটি পেতে চাইছেন তা হ'ল git add -p
(এর -p
প্রতিশব্দ --patch
)। এটি সামগ্রীতে চেক করার একটি ইন্টারেক্টিভ উপায় সরবরাহ করে, প্রতিটি কুঁচকে inোকা উচিত কিনা তা আপনাকে সিদ্ধান্ত দিতে দেয় এবং এমনকি প্রয়োজনে আপনাকে প্যাচটি ম্যানুয়ালি সম্পাদনা করতে দেয়।
চেরি-পিকের সাথে একত্রে এটি ব্যবহার করতে:
git cherry-pick -n <commit> # get your patch, but don't commit (-n = --no-commit)
git reset # unstage the changes from the cherry-picked commit
git add -p # make all your choices (add the changes you do want)
git commit # make the commit!
(গিট-চেরি-পিক-এর একটি --no-কমিট বিকল্প রয়েছে বলে মনে করিয়ে দেওয়ার জন্য টিম হেনিগানকে ধন্যবাদ জানাই, এবং আপনাকে পুনরায় সেট করতে হবে তা নির্দেশ করার জন্য ফেলিক্স রাবেকে ধন্যবাদ! যদি আপনি কেবল কিছু জিনিস কমিট থেকে বাদ দিতে চান তবে , আপনি git reset <path>...
কেবল সেই ফাইলগুলি আনস্টেজ করতে ব্যবহার করতে পারেন ))
আপনি অবশ্যই add -p
প্রয়োজন হলে নির্দিষ্ট পথ সরবরাহ করতে পারেন। আপনি যদি একটি প্যাচ দিয়ে শুরু করছি আপনি প্রতিস্থাপন করতে পারে cherry-pick
সঙ্গে apply
।
আপনি যদি সত্যিই একটি চান git cherry-pick -p <commit>
(সেই বিকল্পটির অস্তিত্ব নেই), আপনার ব্যবহার করতে পারেন
git checkout -p <commit>
এটি আপনার নির্দিষ্ট প্রতিশ্রুতির বিপরীতে বর্তমান প্রতিশ্রুতি থেকে পৃথক হবে এবং আপনাকে পৃথকভাবে সেই ভিন্ন থেকে কুকুর প্রয়োগ করতে দেবে। এই বিকল্পটি আরও কার্যকর হতে পারে যদি আপনি যে প্রতিশ্রুতিটি আকর্ষণ করছেন তাতে যদি আপনি আগ্রহী নন এমন প্রতিশ্রুতির অংশে সংঘাতগুলি মিশে যায় ((দ্রষ্টব্য, তবে এটির checkout
থেকে পৃথক রয়েছে cherry-pick
: এর বিষয়বস্তু সম্পূর্ণরূপে checkout
প্রয়োগ করার চেষ্টা করে <commit>
, cherry-pick
বিভিন্নটির প্রয়োগ করে) এর পিতামাতার কাছ থেকে নির্দিষ্ট প্রতিশ্রুতিবদ্ধ। এর অর্থ এটি checkout
কেবলমাত্র কমিটের চেয়ে বেশি প্রয়োগ করতে পারে যা আপনার চেয়ে বেশি হতে পারে))