আপনি কীভাবে গিট ডিফ ফাইল আনবেন এবং স্থানীয় ভান্ডারে এটি প্রয়োগ করবেন যা একই সংগ্রহস্থলের অনুলিপি?


491

আমার একজন সহকর্মী দ্বারা তৈরি একটি .ডিফ ফাইল রয়েছে এবং আমি সেই ডিফ ফাইলটিতে তালিকাবদ্ধ পরিবর্তনগুলি ঠিক একই সংগ্রহস্থলের স্থানীয় স্থানীয় শাখায় প্রয়োগ করতে চাই। আমার কাছে সেই কর্মীর পিসি বা শাখায় অ্যাক্সেস নেই যা এই ভিন্ন ফাইলটি তৈরি করতে ব্যবহৃত হয়েছিল।

স্পষ্টতই আমি এক এক করে লাইন গিয়ে সমস্ত কিছু আবার টাইপ করতে পারতাম, তবে আমি সিস্টেমটিকে মানুষের ত্রুটির আওতায় আনতে চাই না। এটি করার সবচেয়ে সহজ উপায় কী?

উত্তর:


746

আপনার সংগ্রহস্থলের মূলটিতে ডিফ ফাইলটি অনুলিপি করুন এবং তারপরে এটি করুন:

git apply yourcoworkers.diff

applyকমান্ড সম্পর্কে আরও তথ্য এর ম্যান পেজে পাওয়া যায় ।

উপায় দ্বারা: ফাইল দ্বারা পুরো কমিটগুলি বিনিময় করার আরও ভাল উপায় হ'ল git format-patchপ্রেরকের এবং তারপরে git amরিসিভারের কমান্ডের সংমিশ্রণ , কারণ এটি লেখকের তথ্য এবং প্রতিশ্রুতি বার্তাও স্থানান্তর করে।

প্যাচ আবেদন ব্যর্থ হয় এবং যদি করে পরিবর্তন থেকে উত্পন্ন হয় আপনার রেপো আসলে হয়, আপনি ব্যবহার করতে পারেন -3বিকল্প applyপরিবর্তন একত্রীকরণ যে চেষ্টা করে।

এটি ইউনিক্স পাইপের সাথে নিম্নলিখিত হিসাবে কাজ করে:

git diff d892531 815a3b5 | git apply

3
উত্তরের জন্য ধন্যবাদ, তবে এটি ত্রুটির কারণ বলেছে, প্যাচ ব্যর্থ হয়েছে: filename.php: 202 ত্রুটি: filename.php: প্যাচ প্রযোজ্য নয়। সুসংবাদটি হ'ল এটি ফাইলের প্রথম ফাইলের নাম নয়, তাই এটি অন্তত ফাইলটির কিছু প্রক্রিয়া করতে সক্ষম হত। কোন চিন্তা?
মাইক_কে

4
আপনারও সেই ফাইলটিতে পরিবর্তন রয়েছে যা প্যাচটি কাজ করা বন্ধ করে দেয়। এটি সমাধানের জন্য আপনি আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করতে পারেন, একটি নতুন শাখা তৈরি করতে পারেন, আপনি এবং আপনার সহকর্মী যেদিকে সরিয়েছেন সে প্রতিশ্রুতিতে এটি পুনরায় সেট করুন, প্যাচটি প্রয়োগ করুন, এটি প্রতিশ্রুতিবদ্ধ করুন এবং তারপরে দুটি শাখা মার্জ করুন।
ফিলিপ

3
@orlybg যখন আপনি এখনও এটি প্রতিশ্রুতিবদ্ধ করেন নি, git reset --hardআপনার কার্যনির্বাহী গাছকে শেষ প্রতিশ্রুতিতে ফিরিয়ে আনতে করুন। আপনি ইতিমধ্যে এটি প্রতিশ্রুতিবদ্ধ হয়ে গেলে, আপনি যে রিভিশনটিতে ফিরে যেতে চান তা যুক্ত করুন।
ফিলিপ

5
@orlybg দুঃখিত, তবে তারপরে আপনি ভ্রষ্ট হন। গিট কেবলমাত্র একটি চেকপয়েন্ট তৈরি করে যখন আপনি কোন অঙ্গীকারবদ্ধ করতে পারেন তখন আপনি ফিরে আসতে পারেন। এজন্য অনেক গিট গাইড দ্রুত এবং প্রায়শই প্রতিশ্রুতিবদ্ধ হওয়ার পরামর্শ দেয় ।
ফিলিপ

4
@ orlybg একেবারে কমপক্ষে, git stashআপনি এমন কোনও ক্রিয়া সম্পাদন করার আগে দৌড়াবেন যা আপনি পরে ফিরে যেতে চান। তারপরে যে কোনও উপায়ে আপনি আপনার স্ট্যাশ ফিরিয়ে আনতে পারেন এবং পরে কিছু সময়ে প্রতিশ্রুতিবদ্ধ।
মারিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.