আমি কীভাবে আমার সর্বশেষতম গিট কমিট থেকে প্যাচ তৈরি করব?


186

আমি শেষ করা কমিট থেকে প্যাচ তৈরির ম্যাজিক কমান্ডটি সন্ধান করছি।

আমার ওয়ার্কফ্লো মাঝে মাঝে এরকম দেখাচ্ছে

vi some.txt
git add some.txt
git commit -m "some change"

এবং এখন আমি শুধু লিখতে চাই

git create-patch-from-last-commit-to-file SOME-PATCH0001.patch

তবে আমার পরিবর্তে সেখানে কী রাখা উচিত create-patch-from-last-commit-to-file?



উত্তর:


297

সাধারণভাবে,

git format-patch -n HEAD^

(অনেকগুলি বিকল্পের জন্য সহায়তা পরীক্ষা করুন), যদিও এটি সত্যিই তাদের মেল করার জন্য। একটি একক প্রতিশ্রুতি জন্য

git show HEAD > some-patch0001.patch

আপনাকে ব্যবহারযোগ্য প্যাচ দেবে।


18
"গিট শো হেড> কিছু-প্যাচ 10001.patch" দিয়ে যত্নবান হন, যদি এটি রঙিন টার্মিনালে ডাকা হয় তবে এটি ফাইলের মধ্যে পালানোর ক্রমগুলিও ডুপ করে দেয়।
hrach

12
আপনি ব্যবহার করতে পারেন git diff > change.patch। আপনি পাশাপাশি একটি পুনর্বিবেচনা পরিসীমা অন্তর্ভুক্ত করতে পারেন এবং এটি আপনাকে আপমুক্ত পরিবর্তনের জন্য প্যাচগুলি তৈরি করতে দেয় allows তবে বড় পার্থক্য হ'ল এটি বাইনারি ফাইলগুলির মধ্যে পার্থক্য অন্তর্ভুক্ত করবে না'গিট ফরম্যাট-প্যাচ' এবং 'গিট ডিফ' এর মধ্যে পার্থক্য কী আছে তার উত্তর দেখুন ? আরও বিশদ জন্য।
রাঙ্গী কেন

4
লিনাক্সে এটি টুইট করুন না
রবিন গ্রিন

4
না, কারণ এটি প্রথম পংক্তিটি বলে না। হয় git format-patch -1বা git format-patch -n HEAD^কাজ করা উচিত।
বেহুদা

4
ধন্যবাদ, আমি বুঝতে পারি নি যে এটি আক্ষরিক অর্থে 'এন' অক্ষর ছিল, আমি ভেবেছিলাম এটি একটি স্থানধারক (ফর্ম্যাট-প্যাচটিতে উভয় '-n' এবং '- <n>' বিকল্প রয়েছে)।
Étienne

60

@ অপ্রয়োজনীয় উত্তর থেকে, আপনি সর্বশেষ কমিটের জন্য কোনও পরামিতি ছাড়াই সাধারণ ফর্মটিও ব্যবহার করতে পারেন এবং এটির সাথে একটি ফাইলে রেখে দিতে পারেন:

git format-patch HEAD^ --stdout > patchfile.patch

বা, উইন্ডোজ ব্যবহারকারীদের জন্য ক্লিনার হওয়ার পরে কেরেটগুলি দ্বিগুণ করে পালাতে হবে:

git format-patch HEAD~1 --stdout > patchfile.patch

2
আমার জন্য কাজ - ধন্যবাদ। যদি আপনি উইন্ডোজ এবং গিট ব্যবহার করতে চান তবে আপনাকে গাজরটি থেকে বাঁচতে হবে (আমি জঘন্য জানি): "গিট ফর্ম্যাট-প্যাচ হেড ^^ --stdout> প্যাচফিল.প্যাচ"
স্টিভ

3
সেই ক্যারেটটি (যে এটি অন্যরকম বৈধ গিট কমান্ডের মতো দেখায়) এড়িয়ে যাওয়ার উইন্ডোজ সমস্যা থেকে বাঁচতে আপনি এর বিকল্পটি ব্যবহার করতে পারেন git format-patch HEAD~1। আমি মনে করি এটি উইন্ডোজে কম বিভ্রান্তিকর হবে।
মাইকেল বার বার

30

অন্য উপায়, যদি সেই নির্দিষ্ট প্রতিশ্রুতিবদ্ধতার প্রতিশ্রুতিবদ্ধ ID থাকে তবে আপনি ব্যবহার করতে পারেন,

git format-patch -1 {commit-id}

9

-pলগ গিট করার জন্য আপনার বিকল্পের প্রয়োজন :

git log -1 -p --pretty='%b'

আপনি যদি ফাইলের শুরুতে / তারিখ / বিষয় লাইন থেকে ইমেলটি যত্ন না করেন তবে এটি ব্যবহার করুন।
রায়ান এইচ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.