আমার ক্লায়েন্ট কীভাবে git diffগিট ইনস্টল না করে তৈরি প্যাচ প্রয়োগ করতে পারেন ? আমি patchকমান্ডটি ব্যবহার করার চেষ্টা করেছি তবে এটি সর্বদা ফাইলের নামটি প্যাচ করতে বলে।
patchসম্পূর্ণরূপে এই ফর্ম্যাট সমর্থন করে না।
আমার ক্লায়েন্ট কীভাবে git diffগিট ইনস্টল না করে তৈরি প্যাচ প্রয়োগ করতে পারেন ? আমি patchকমান্ডটি ব্যবহার করার চেষ্টা করেছি তবে এটি সর্বদা ফাইলের নামটি প্যাচ করতে বলে।
patchসম্পূর্ণরূপে এই ফর্ম্যাট সমর্থন করে না।
উত্তর:
git diff > patchfile
এবং
patch -p1 < patchfile
কাজ কিন্তু মন্তব্য এবং অন্যান্য উত্তর প্যাচ হিসাবে অনেক লোক লক্ষ্য করা প্যাচ যোগ, মুছে ফেলা এবং নাম পরিবর্তন বুঝতে পারে না। কোনও বিকল্প নেই তবে আপনার git apply patchfileযদি হ্যান্ডেল ফাইলের দরকার হয় তবে অ্যাড, ডিলিট এবং নাম পরিবর্তন করতে হবে।
এডিআইটি ডিসেম্বর 2015
patchকমান্ডের সর্বশেষ সংস্করণ (২০১২ এর সেপ্টেম্বরে প্রকাশিত ২.7) নাম এবং অনুলিপি, অনুমতি পরিবর্তন এবং সিমলিংক ডিফ (তবে এখনও বাইনারি ডিফ নয়) ( প্রকাশের ঘোষণা ) সহ বেশিরভাগ বৈশিষ্ট্যগুলি "ডিফ - গিট" ফর্ম্যাটকে সমর্থন করে ।
সুতরাং যে patchকোনও gitএকটি প্যাচ হিসাবে তার ভিন্নতা প্রয়োগ করতে সক্ষম হওয়ার বর্তমান / সর্বশেষতম সংস্করণ ব্যবহার করে।
git diff > patchfile, তবেpatch -p1 < patchfile
relativeবিকল্পটি ব্যবহার করতে পারেন :git diff --no-prefix --relative=my/relative/path > patchfile
patch -p1 < patchfileগিট ইনস্টল করা প্রয়োজন হয় না। প্রথম কমান্ড ভিন্ন প্রয়োগের জন্য কমান্ড প্রদর্শন করে, এটি প্রয়োগ করে না।
git diff from_branch > patchfile; git checkout from_branch; git patch -p1 < patchfileবাgit diff from_branch to_branch > patchfile; ...
ব্যবহার
git apply patchfile
যদি সম্ভব হয়.
patch -p1 < patchfile
সম্ভাব্য পার্শ্ব-প্রতিক্রিয়া আছে।
git applyফাইল সংযুক্তি, মুছে ফেলা এবং পুনরায় নামগুলি যদি git diffফর্ম্যাটে বর্ণিত হয় তবে এটি হ'ল patchwon't পরিশেষে, git applyএকটি "সমস্ত প্রয়োগ করুন বা বাতিল করুন" মডেল যেখানে সমস্ত কিছুই প্রয়োগ করা হয় বা কিছুই নয়, অন্যদিকে প্যাচ আংশিকভাবে প্যাচ ফাইলগুলি প্রয়োগ করতে পারে, আপনার কাজ ডিরেক্টরিকে একটি অদ্ভুত অবস্থায় ফেলে।
git applyএটি করার সর্বোত্তম উপায় তবে এই প্রশ্নটি গিট ইনস্টল না করে প্যাচটি কীভাবে প্রয়োগ করতে হবে তা বিশেষভাবে জিজ্ঞাসা করে ।
--dry-run --verboseপার্শ্ব প্রতিক্রিয়াগুলি কী হবে তা নির্ধারণ করতে বিকল্পগুলি কার্যকর। (প্যাচ v2.5.8 ব্যবহার করে)
git apply patchfile -... একমাত্র বুদ্ধিমান উত্তর ..." - এটি প্রায় হাস্যকর। যখনই ওপেনএসএসএল ডেভস আমাকে পরীক্ষার জন্য একটি প্যাচ পাঠায়, গিট এটি প্রয়োগ করতে ব্যর্থ হয়। এটাই প্রতিবার । আমি এখনও দেখতে পাইনি যে বোকা সরঞ্জামটি একটি প্যাচ প্রয়োগ করে।
আমি ব্যবহার করি
patch -p1 --merge < patchfile
এইভাবে, বিবাদগুলি যথারীতি সমাধান করা যেতে পারে।