গেটে 'উভয় যুক্ত' সংহত সংঘাতের সমাধান করছেন?


138

আমি গিটকে ছাড়ছি, এবং আমার একটি দ্বন্দ্ব হ'ল 'দু'জন যুক্ত' - এটি হ'ল একই ফাইল নামটি আমার শাখায় স্বাধীনভাবে যুক্ত করা হয়েছে, এবং সেই শাখায় আমি প্রত্যাবর্তন করছি। git statusআমাকে বলে:

# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       both added:         src/MyFile.cs

আমার প্রশ্ন, আমি কীভাবে এটি সমাধান করব? আমি কি একীকরণের সরঞ্জামটি ব্যবহার করব বা কমান্ডলাইন থেকে এটি করার কোনও উপায় আছে? আমি যদি git rm src/MyFile.cs, গিট কীভাবে জানতে পারে যে আমি কোন ফাইল সংস্করণটি মুছতে চাই এবং কোনটি রাখতে চাই?

উত্তর:


139

আপনি যদি ব্যবহার git rm গিট সেই পথের সমস্ত সংস্করণ সূচক থেকে সরিয়ে ফেলবে যাতে আপনার সমাধানের ক্রিয়াটি কোনও সংস্করণ ছাড়াই আপনাকে ছেড়ে চলে যায়।

আপনি git checkout --ours src/MyFile.csযে শাখায় প্রত্যাবর্তন করছেন git checkout --theirs src/MyFile.csতার সংস্করণ চয়ন করতে বা আপনি যে শাখাটি ছাড়ছেন সেখান থেকে সংস্করণ চয়ন করতে ব্যবহার করতে পারেন ।

আপনি যদি একটি মিশ্রণ চান তবে আপনার একত্রীকরণ সরঞ্জামটি ব্যবহার করতে হবে বা ম্যানুয়ালি এডিট করতে হবে।


1
ধন্যবাদ। এবং আমি কেবল বুঝতে পেরেছি যে মার্জ টুলটি কাজ করছে না তার কারণ হ'ল গিটটি মার্জ করার জন্য .কল এবং .আরমোট ফাইল তৈরি করে, তবে .বিএসএ ফাইল নয়। আমি মনে করি এটি খালি .BSE ফাইল তৈরি করা উচিত। আপনি যদি ম্যানুয়ালি খালি। বিএসইএ ফাইলটি তৈরি করেন তবে মার্জ সরঞ্জামটি ঠিকঠাক কাজ করে।
জেজ

1
@ জিজ: দয়া করে এই থ্রেডটি দেখুন: सूत्र.gmane.org/gmane.comp.version-control.git/188776/…
সিবি বেইলি

1
সুতরাং আপনি কি বলছেন যে এটি গিটের সাম্প্রতিক সংস্করণে ঠিক করা হবে?
জেজ

1
@ জিজ: এটি গিট সংস্করণগুলিতে> = 1.7.9.1 git.kernel.org/?p=git/…
সিবি বেইলি

21
@ টম উত্তর থেকে: যখন করছেন ... git checkout --ours someFile মনে হচ্ছে গিট স্ট্যাটাস করার সময় এটি কিছুই করেনি। এটি পরে মনে রাখবেন Just git add someFile git status
পেক

72

ফাইলটি কোথা থেকে আসবে তা সনাক্ত করতে আমি --theirsএবং --oursবিকল্পগুলি ব্যবহার করে মাঝে মাঝে এটি বিভ্রান্তি বোধ করি । আমার বেশিরভাগ সময় আমি যে শাখায় মুক্তি দিচ্ছি সেগুলিতে থাকবে যা দ্বারা উল্লেখ করা হয়েছে --theirs!

আপনি ব্যবহার করতে পারেন git checkout <tree-ish> -- src/MyFile.cs

যেখানে <tree-ish>শাখার নাম বা কমিট-আইডি দ্বারা প্রতিস্থাপন করা যেতে পারে যেখানে আপনি রাখতে চান ফাইলটি রয়েছে।

git checkout 6a363d8 -- src/MyFile.cs

git checkout my_branch -- src/MyFile.cs

git checkout HEAD -- src/MyFile.cs


42

যখন করছেন ...

git checkout --ours someFile

গিট স্ট্যাটাস করার সময় এটি কিছু করেনি বলে মনে হতে পারে।

এটি পরে মনে রাখবেন Just

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