অন্যান্য বর্তমান উত্তরগুলির মধ্যে কোনটিই আসলে ফাইলগুলিকে "মার্জ" করবে না, যেন আপনি মার্জ কমান্ডটি ব্যবহার করছেন। (সর্বোত্তমভাবে তাদের আপনাকে ম্যানুয়ালি পৃথকীকরণগুলি বেছে নেওয়ার প্রয়োজন হবে you) যদি আপনি প্রকৃতপক্ষে কোনও সাধারণ পূর্বপুরুষের কাছ থেকে তথ্যটি ব্যবহার করার সুযোগ নিতে চান তবে আপনি গিটের "অ্যাডভান্সড মার্জিং" বিভাগে পাওয়া কোনওটির ভিত্তিতে একটি পদ্ধতি অনুসরণ করতে পারেন g ব্যবহৃত গ্রন্থ.
এই প্রোটোকলের জন্য, আমি ধরে নিচ্ছি যে আপনি উত্স / মাস্টার থেকে হেডের মধ্যে 'path / to / file.txt' ফাইলটি মার্জ করতে চাইছেন - যথাযথ হিসাবে সংশোধন করুন। (আপনাকে আপনার সংগ্রহস্থলের শীর্ষ ডিরেক্টরিতে থাকতে হবে না তবে এটি সহায়তা করে))
# Find the merge base SHA1 (the common ancestor) for the two commits:
git merge-base HEAD origin/master
# Get the contents of the files at each stage
git show <merge-base SHA1>:path/to/file.txt > ./file.common.txt
git show HEAD:path/to/file.txt > ./file.ours.txt
git show origin/master:path/to/file.txt > ./file.theirs.txt
# You can pre-edit any of the files (e.g. run a formatter on it), if you want.
# Merge the files
git merge-file -p ./file.ours.txt ./file.common.txt ./file.theirs.txt > ./file.merged.txt
# Resolve merge conflicts in ./file.merged.txt
# Copy the merged version to the destination
# Clean up the intermediate files
গিট মার্জ-ফাইলে আপনার ডিফল্ট একত্রিতকরণ সেটিংস ফর্ম্যাটিং এবং এর মতো ব্যবহার করা উচিত।
আরও মনে রাখবেন যে আপনার "আমাদের" যদি ওয়ার্কিং কপির সংস্করণ হয় এবং আপনি অতিরিক্ত সতর্ক হতে না চান তবে আপনি সরাসরি ফাইলটিতে অপারেট করতে পারেন:
git merge-base HEAD origin/master
git show <merge-base SHA1>:path/to/file.txt > ./file.common.txt
git show origin/master:path/to/file.txt > ./file.theirs.txt
git merge-file path/to/file.txt ./file.common.txt ./file.theirs.txt