কম্পিউটার টিউটোরিয়াল

Error: The Following Untracked Working Tree Files Would Be Overwritten by Merge - সমাধান

উপরোক্ত এররটি প্রায়শই ট্রিগার হয় যখন আমরা যে রিপোজিটরি থেকে পুল করার চেষ্টা করছি সেটি ক্লোন করি না। প্রজেক্টগুলো একই হতে পারে, কিন্তু আমরা লোকালি একটি নিয়ে কাজ করছি যখন রিমোট রিপো GitHub-এ থেকে পুল করার চেষ্টা করছি কারণ সেটিতে অন্য ফাইল বা ফিচার থাকতে পারে যা আমরা আমাদের লোকাল ভার্সনে ইনকর্পোরেট করতে চাই।

এটি ফিক্স করার кільটি উপায় আছে।

লোকাল ব্রাঞ্চকে রিমোট ব্রাঞ্চ ট্র্যাক করতে বলুন

আমরা নিচের কমান্ড ব্যবহার করে এটি করতে পারি।

git branch --track <branch-name> origin/<branch-name>

এটি করার দ্বারা, রিমোট ব্রাঞ্চটি রিমোট সার্ভারের একটি কাউন্টারপার্ট হয়ে যায়। এরপর, দুটি রিপোজিটরির পার্থক্য দেখতে git status করুন।

স্টেজিং এবং স্ট্যাশিং

ভার্সন কন্ট্রোল থেকে লোকাল ফাইল ওভাররাইট না হওয়াতে পুল করতে, আমরা স্টেজ করে তারপর স্ট্যাশ করতে পারি নিচের কমান্ডগুলো ব্যবহার করে।

git add -A git stash git pull

git add -A দিয়ে, আমরা সব পরিবর্তন স্টেজ করছি। এটি git add-এর মতো যেহেতু সেটি সব ওয়ার্কিং ট্রি দেখে এবং সব ওয়ার্কিং পথ স্টেজড চেঞ্জ, চেঞ্জড, নিউ, অথবা না উপেক্ষা করা - সেগুলো যোগ করে। এর অপেক্ষা, এটি git add -u-র মতোও কাজ করে যেহেতু সেটি ইতিমধ্যে ট্র্যাক করা ফাইলগুলো দেখে এবং সেগুলোর পরিবর্তন স্টেজ করে যদি সেগুলো রিমুভ করা থাকে অথবা সেগুলো ভিন্ন থাকে।

git stash দিয়ে আমরা স্টেজড এবং আনস্টেজড অকমিটেড পরিবর্তন নিচ্ছি, সেগুলো ভবিষ্যতে ব্যবহারের জন্য স্ট্যাশ করে রাখছি, তারপর ওয়ার্কিং কপি থেকে সেগুলো রিভার্ট করছি। এরপর, আমরা নতুন ফাইল পুল করার মতো পরিবর্তন করতে آزاد।

ফেচিং এবং রিসেটিং

যদি উপরের দুটোই আপনার জন্য কাজ না করে, তবে ফেচিং এবং রিসেটিং চেষ্টা করুন। কারণ আমরা এই অপশনে --hard ব্যবহার করব, তাই উপরের দুটি মেথড কমপক্ষে একবার অ্যাটেম্প্ট করা গুরুত্বপূর্ণ কারণ --hard একটি পোটেনশিয়ালি ডেঞ্জারাস কমান্ড যা সব অকমিটেড চেঞ্জ থ্রো করে।

নিচের ফিক্স চেষ্টা করার আগে আপনার আউটপুট খালি কিনা সেটি নিশ্চিত করতে git status করুন।

git fetch --all git reset --hard origin/<branch-name>

git fetch --all দিয়ে, আমরা সব রিমোট ব্রাঞ্চ ফেচ করতে পারি। ফেচ রিমোট ব্রাঞ্চের লোকাল কপি আপডেট করবে, কিন্তু রিমোট ব্রাঞ্চ ট্র্যাক করা লোকাল ব্রাঞ্চ আপডেট করবে না। এটি অর্জন করতে, আমাদের git pull --all করতে হবে।

git reset --hard origin/<branch-name> দিয়ে, আমরা মূলত বলছি "আমার লোকাল ব্রাঞ্চে যা কিছু আছে সেটি থ্রো অওয়ে, এবং এটিকে আমার রিমোট ব্রাঞ্চের মতো করে দাও"। এটি সব স্টেজড এবং আনস্টেজড চেঞ্জ থ্রো করে।

উপসংহার

error: the following untracked working tree files would be overwritten by merge ট্রিগার হয় যখন আমরা একটি রিমোট ব্রাঞ্চ পুল করার চেষ্টা করছি যখন একটি লোকাল ব্রাঞ্চে আছি। প্রজেক্টগুলো একই হতে পারে, কিন্তু লোকালটিকে রিমোট ট্র্যাক করতে সক্ষম হতে হবে সফলভাবে পুল করার জন্য।

এই এররটি প্রায়শই ট্রিগার হয় যখন ডেভেলপার একটি রিপো ক্লোন করতে ভুলে যায়। এই এরর ফিক্স করার অন্যান্য উপায় হলো স্টেজিং এবং স্ট্যাশিং বা ফেচিং এবং রিসেটিং, যেগুলো শুধু তখন চেষ্টা করা উচিত যখন প্রথম দুটি মেথড সফল না হয়।

  1. 1152: অস্থায়ী লোকেশনে ফাইল এক্সট্র্যাক্ট করতে ত্রুটি – InstallShield এরর

  2. গিট (Git) বIgিনার গাইড

  3. সমাধান: ডোমেনে যোগ করার চেষ্টায় নিম্নলিখিত ত্রুটি ঘটেছে

  4. Git Merge Conflicts সমাধান: 'Index Needs Resolution' এরর ফিক্স করার ধাপে ধাপে গাইড