কোন শাখায় কোনও ফাইল সরানোর কারণে আমি কীভাবে মার্জ সংঘাত ঠিক করব?


208

আমি একটি dialogশাখা তৈরি করেছি এবং যখন আমি এটি masterশাখায় একীভূত করার চেষ্টা করি । এখানে 2 টি দ্বন্দ্ব রয়েছে। আমি সমাধান করতে জানি না CONFLICT (delete/modify)। আমাকে কি করতে হবে দয়া করে?

$ git checkout master
$ git merge dialog
CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree.
Auto-merging src/com/DialogAdapter.java
CONFLICT (content): Merge conflict in src/DialogAdapter.java
Automatic merge failed; fix conflicts and then commit the result.

আমি src/DialogAdapter.javaদ্বন্দ্ব খুলেছি , সংশোধন করেছি এবং করেছি git add src/DialogAdapter.java। আমার আর কী করা দরকার?


আপনি স্ট্যাক ওভারফ্লোতে এই পোস্টটি পড়তে পারেন: - আমি কীভাবে গিতে মার্জ সংঘাতগুলি ঠিক করব? গৃহীত উত্তর গিট ম্যানুয়াল উল্লেখ করে ।
ভারী ভারী

উত্তর:


271

দ্বন্দ্ব বার্তা:

কনফ্লিক্ট (মুছুন / সংশোধন করুন): পুনরায় / লেআউট / ডায়লগ_ইটিএম.এক্সএমএল ডায়লগে মুছে ফেলা হয়েছে এবং হেডে সংশোধিত হয়েছে

এর অর্থ হল যে res/layout/dialog_item.xmlআপনি সংযুক্ত করছেন সেই 'ডায়ালগ' শাখায় মুছে ফেলা হয়েছে, তবে শিরোনামে সংশোধন করা হয়েছিল (যে শাখায় আপনি সংশ্লেষ করছেন আপনি)।

সুতরাং আপনি সিদ্ধান্ত নিতে হবে কিনা

  • " git rm res/layout/dialog_item.xml" ব্যবহার করে ফাইল সরান

অথবা

  • " git add res/layout/dialog_item.xml" এর সাথে শিরোনামের সংস্করণ গ্রহণ করুন (সম্ভবত এটি সম্পাদনার পরে)

তারপরে আপনি " git commit" এর সাথে একত্রীকরণ চূড়ান্ত করবেন ।

নোট করুন যে গিট আপনাকে সতর্ক করবে যে আপনি একীভূত প্রতিশ্রুতি তৈরি করছেন, (বিরল) ক্ষেত্রে যেখানে এটি আপনি চান না এমন জিনিস is সম্ভবত সেই দিনগুলি থেকে এখনও রয়ে গেছে যেখানে বলা হয়েছে যে মামলাটি খুব কম বিরল ছিল।


21
প্রাক্তনকে ( git rm …) চেষ্টা করেছিলেন তবে আমি পেয়েছি …: needs mergeএবং rm '…'যার ব্যাখ্যা দিতে আমার বেশ কষ্ট হচ্ছে। এবং তারপরে আমি যদি প্রতিশ্রুতিবদ্ধ হওয়ার চেষ্টা করি তবে stackoverflow.com/questions/19985906/… আবার আসবে।
জেসি গ্লিক

17
এই মন্তব্যের দ্বিতীয়ার্ধটিকে কখনই মনে করবেন না। গিট থেকে আউটপুট কিছুটা উদ্বেগজনক তবে এটি নিরীহ বলে মনে হচ্ছে।
জেসি গ্লিক

4
একটি গণ পদ্ধতির আছে? আমার হাতে একটি প্রকল্প রয়েছে যা আমি রাখতে চাই না এমন বাহ্যিক সামগ্রীর উপর নির্ভর করে। সুতরাং প্রচুর ফাইল রয়েছে যেগুলি প্রবাহিত হয়ে প্রবাহিত হয়েছে এবং আমি আমার শাখায় মুছতে চাই যে আমি যাই হোক না কেন রিবাইস করছি। একে একে করতে ক্লান্তি লাগছে।
22'15 এ mlt

2
@ মমি: আপনি পরিবর্তিত ফাইলগুলির তালিকা পেতে এবং সেগুলি মুছতে বা আপনার বা তাদের সংস্করণ স্বীকার করতে একটি স্ক্রিপ্ট ড্রাইভ করতে পারেন git ls-files --stageএবং / অথবা git status --porcelainএবং / অথবা ব্যবহার করতে পারেন git diff-files <something>
জাকুব নারেবস্কি

1
@ মধু: কনফ্লিক্ট বার্তায় কোন শাখায় কোন পরিবর্তন ছিল সে সম্পর্কে বর্ণনা অন্তর্ভুক্ত রয়েছে। আপনি এটি পরে git statusবা এটি পরীক্ষা করতে পারেন git diff --cc। এছাড়াও git log --mergeযা সাহায্য করতে পারে ...
জাকুব নরবস্কি

74

আমি সাধারণত চালিত করি git mergetoolএবং যদি আমি পরিবর্তিত ফাইলটি রাখতে চান বা এটি মুছে রাখতে চান তবে তা আমাকে অনুরোধ করবে। এটি প্রতি দ্রুত ফাইল আইএমএইচও, যেহেতু এটি প্রতি ফাইলের পরিবর্তে এক কমান্ড।

যদি আপনার নির্দিষ্ট উপ-ডিরেক্টরিতে মুছে ফেলা ফাইলগুলির একটি গুচ্ছ থাকে এবং আপনি ফাইলগুলি মুছে ফেলার মাধ্যমে সেগুলির সবগুলি সমাধান করাতে চান তবে আপনি এটি করতে পারেন:

yes d | git mergetool -- the/subdirectory

dপ্রতিটি ফাইল মুছে ফেলার পছন্দ করে প্রদান করা হয়। আপনি mপরিবর্তিত ফাইল রাখতে ব্যবহার করতে পারেন । প্রম্পট থেকে নেওয়া আপনি যখন দেখবেন তখন mergetool:

Use (m)odified or (d)eleted file, or (a)bort?

1
@ ব্রায়ানমিন্টন আমাকেও, অন্যান্য জিনিসগুলি কেবল একটি দুষ্টচক্র ছিল
নেট এল

2
এটি যখন বিরক্ত হয় তখন এর অনেকগুলি ফাইল, সবার জন্য একটি উত্তর দেওয়ার উপায় আছে?
ধারণাগুলি 42

2
@ ধারণাগুলি 42 আমি ব্যাচ-মুছার সমাধানটি দেখানোর জন্য আমার উত্তর আপডেট করেছি।
void.pointer 26'19

1
আমি সত্যিই মার্জ সরঞ্জাম সম্পর্কে জানতাম না। তুমি আমার দিন বাঁচাও!
মেরিট

6

আপনি যদি উইন্ডোতে গিট গুই ব্যবহার করছেন,

  1. মার্জটি বাতিল করুন
  2. আপনি আপনার লক্ষ্যযুক্ত শাখায় রয়েছেন তা নিশ্চিত করুন
  3. এক্সপ্লোরার থেকে বিরোধী ফাইল মুছুন
  4. গিট গুই (এফ 5) এর পরিবর্তনের জন্য পুনরায় স্ক্যান করুন
  5. লক্ষ্য করুন যে বিরোধী ফাইল মুছে ফেলা হয়েছে
  6. কমিট মেনু থেকে স্টেজ পরিবর্তিত ফাইলগুলি কমিট করার জন্য (Ctrl-I) নির্বাচন করুন
  7. "মুছে ফেলা বিরোধী ফাইল" এর মতো একটি প্রতিশ্রুতিবদ্ধ মন্তব্য লিখুন
  8. প্রতিশ্রুতিবদ্ধ (ctrl- প্রবেশ)
  9. এখন আপনি যদি মার্জটি পুনরায় চালু করেন তবে এটি (আশাকরি) কাজ করবে।

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