গিট রিমোট থেকে টানার সময় রিমোট পরিবর্তনগুলি ব্যবহার করে বিরোধগুলি সমাধান করুন


297

আমি আমার গিটহাব রেপো থেকে আমার সার্ভারে কোডটি টানতে চেষ্টা করছি, তবে সংযুক্তির বিরোধের কারণে টানটি ব্যর্থ হতে চলেছে। শেষ টানা থেকে আমার স্থানীয় সার্ভারে ঘটে যাওয়া কোনও পরিবর্তনই আমি রাখতে চাই না।

তাহলে কি কোনও উপায় আছে যে আমি গিটকে দ্বন্দ্ব সম্পর্কে বিরক্ত করার চেয়ে গিটহাবের যে কোনও সংস্করণই ওভাররাইট করতে বাধ্য করতে পারি?



4
@ এনভিএম: না এটি হ'ল রিয়েল মার্জিং বিরোধগুলির বিষয়ে, তালিকায় থাকা ফাইলগুলিকে নয় যে ওভাররাইট করা হবে।
ক্যাসাবেল

উত্তর:


490

আপনি সত্যিই বাতিল করতে চান করে আবার ইতিহাসে আপনি স্থানীয়ভাবে তৈরি করেছি, অর্থাত্ কখনো তাদের, তাই না বলছি কিভাবে টান - খিঁচ উপায়ে একত্রিত করুন এবং আপনি একত্রীকরণ প্রয়োজন হবে না। আপনার যা করা দরকার তা হ'ল:

# fetch from the default remote, origin
git fetch
# reset your current branch (master) to origin's master
git reset --hard origin/master

আমি ব্যক্তিগতভাবে প্রথমে আপনার বর্তমান হেডে ব্যাকআপ শাখা তৈরি করার পরামর্শ দেব, যাতে আপনি যদি বুঝতে পারেন যে এটি একটি খারাপ ধারণা ছিল, তবে আপনি এটির ট্র্যাকটি হারিয়ে ফেলেন নি।

অন্যদিকে, আপনি এই প্রতিশ্রুতিগুলি রাখতে চান এবং এটি উত্সের সাথে একীভূত হওয়ার মতো করে দেখতে চান এবং কেবলমাত্র সংস্করণগুলিকে উত্স থেকে রাখার জন্য আপনি oursমার্জ কৌশলটি ব্যবহার করতে পারেন :

# fetch from the default remote, origin
git fetch
# create a branch at your current master
git branch old-master
# reset to origin's master
git reset --hard origin/master
# merge your old master, keeping "our" (origin/master's) content
git merge -s ours old-master

1
সেখানে গিট কমান্ডের দ্বিতীয় ব্লকে .. দ্বিতীয় কমান্ডের পরে 'গিট আনতে হবে'?
ডেভিড টুয়েট

@ ডেভিড: হ্যাঁ, আপনার কোনও সময় উত্স থেকে আসা উচিত। দুঃখিত, আমি এটিকে অন্তর্নিহিত হিসাবে বিবেচনা করেছি।
ক্যাসাবেল

2
এটি আমার কাছে এসে যখন গিট ;-) আসে তখন কিছুই বোঝা যায় না। সিরিয়াসলি যদিও, একটি মিলিয়ন ধন্যবাদ। আপনার উত্তরগুলি হ'ল আমি যা খুঁজছিলাম।
ডেভিড টুয়েট

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

1
ধন্যবাদ! এটি সহজ মনে হয়।
শোলসিংগার

137

আপনি হয় এনভিএম দ্বারা নির্দেশিত সদৃশ লিঙ্ক থেকে উত্তরটি ব্যবহার করতে পারেন।

অথবা আপনি তাদের পরিবর্তনগুলি ব্যবহার করে বিবাদগুলি সমাধান করতে পারেন (তবে দূরবর্তী সংস্করণে বিরোধ না করলে আপনার কিছু পরিবর্তন রাখা যেতে পারে):

git pull -s recursive -X theirs

3
আমার পক্ষে কাজ করছে বলে মনে হয় না। গিট গিট সংস্করণ 1.5.5.5 ব্যবহার করে আমি "ত্রুটি: অজানা স্যুইচ 'এক্স" পেয়েছি। আমার কি অস্থির সংস্করণে আপগ্রেড করা দরকার?
ডেভিড টুয়েট

এছাড়াও, এন্টোইন, আপনি যদি কেবল দ্বন্দ্বপূর্ণ সামগ্রীই না হয়ে সমস্ত কিছুর মূল সংস্করণ নিতে চান তবে আপনি করতে পারেন - আমার উত্তর দেখুন।
ক্যাসাবেল


2
আমি ঠিক এটিই খুঁজছিলাম!
micahblu

2
পছন্দ করুন Xবিকল্পটি মার্জ কৌশল হিসাবে প্রেরণ করা হয়, যা কেবলমাত্র recursiveদুটি মাথা একত্রিত করার পরে, তাই আপনার কমান্ড অভিযোগ করবে "Could not find merge strategy 'theirs'. Available strategies are: octopus ours recursive resolve subtree."- এটি লজ্জাজনক, কারণ Xকনফিগারেশনে সেট করা যেতে পারে (উদাহরণস্বরূপ git config pull.twohead theirs) তবে তা sপারে না।
ওজেফোর্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.