git - আমি কিভাবে আমার স্থানীয় পরিবর্তনগুলি একত্রিত হয়ে ওভাররাইট করা হবে সে সম্পর্কে 'গিট পুল' সম্পর্কিত একটি ত্রুটি উপেক্ষা করব?




git-pull git-stash (17)

Pycharm জন্য, আপনি গিট করতে পারেন -> ফিরে এবং তারপর টান।

আমি কিভাবে গিট টান নিম্নলিখিত ত্রুটি বার্তা উপেক্ষা করবেন?

নিম্নলিখিত ফাইলগুলিতে আপনার স্থানীয় পরিবর্তনগুলি একত্রিত হয়ে ওভাররাইট করা হবে

আমি যদি ওভাররাইট করতে চাই তাহলে কী হবে?

আমি git pull -f মত জিনিস চেষ্টা করেছি, কিন্তু কিছুই কাজ করে।

স্পষ্ট হতে, আমি কেবলমাত্র নির্দিষ্ট পরিবর্তনগুলি মুছে ফেলতে চাই, সবকিছুই না।


অন্য দুটি উত্তরগুলির সাহায্যে ঠিক আমি সরাসরি সমাধান দিয়ে এসেছি:

git checkout HEAD^ file/to/overwrite
git pull

আপনি একত্রিত করার আগে আপনি নিজের পরিবর্তনগুলি করতে পারেন, অথবা আপনি তাদের আটকাতে পারেন:

  1. git stash save
  2. git merge origin/master
  3. git stash pop

আপনি ফাইল overwrite জন্য এই ব্যবহার করতে পারেন

git checkout file_to_overwrite

আপনি যদি আপনার স্থানীয় পরিবর্তনগুলি একটি ফাইলে বাতিল করতে চান তবে আপনি নিম্নলিখিতগুলি করতে পারেন:

git checkout -- <file>

তারপরে আপনি কেবলমাত্র সর্বশেষ সংস্করণের সাথে ফাইল [গুলি] ওভাররাইট করতে পারেন:

git pull

আপনি যদি নির্দিষ্ট পরিবর্তনগুলি ওভাররাইট করতে চান, তবে আপনি এটি কোনটি ভুলতে চান তা বলার কিছু উপায় প্রয়োজন।

আপনি git stash --patch ব্যবহার করে পরিত্যাগ করতে চান এমন পরিবর্তনগুলিকে git stash --patch করার চেষ্টা করতে পারেন এবং তারপরে git stash drop দিয়ে git stash --patch git stash drop । আপনি তারপর দূরবর্তী পরিবর্তন টান এবং স্বাভাবিক হিসাবে তাদের একত্রিত করতে পারেন।


আমার একটি বিশেষ কেস ছিল: আমার কাছে একটি ফাইল ছিল - এটির উপর অপরিবর্তিত থাকা। এটি সনাক্ত করা কঠিন ছিল, কারণ git status কমান্ড কোন পরিবর্তন দেখাচ্ছে না


আমি আমার রেপোতে একটি ফাইল git pull upstream master করছিলাম এবং যখন আমি git pull upstream master তখন আমি নিম্নলিখিত ত্রুটিটি পেয়েছিলাম:

ত্রুটি: নিম্নলিখিত ফাইলগুলিতে আপনার স্থানীয় পরিবর্তনগুলি একত্রিত হয়ে ওভাররাইট করা হবে: myfile.js দয়া করে আপনার পরিবর্তনগুলি বা আপনি মার্জ করার আগে তাদের আটকাতে পারেন। গর্ভপাত

এটি সমাধান করার জন্য আমি নিম্নলিখিত কাজ করেছিলাম

git update-index --no-assume-unchanged myfile.js

আমি তারপর git status করেনি এবং এই বার্তা পেয়েছিলাম

শাখা মাস্টারে আপনার শাখাটি 'মূল / মাস্টার' এর পিছনে 4 টি করে রয়েছে এবং দ্রুত ফরোয়ার্ড করা যেতে পারে। (আপনার স্থানীয় শাখার আপডেট করতে "গিট পুল" ব্যবহার করুন)

পরিবর্তনগুলি সংঘটিত হওয়ার জন্য সংগঠিত নয়: (কী করতে হবে তা আপডেট করতে "জিট অ্যাড ..." ব্যবহার করুন) (কাজের নির্দেশিকায় পরিবর্তনগুলিকে বাদ দেওয়ার জন্য "git checkout - ..." ব্যবহার করুন)

সংশোধিত: myfile.js

কোন পরিবর্তন সংযোজন যোগ করা হয়েছে ("গিট অ্যাড" এবং / অথবা "গিট কমিট-এ" ব্যবহার করুন)

তারপর আমি git pull upstream master অনুসরণ git checkout myfile.js । এই সময় গিট পুল অপারেশন সফল ছিল।


আমি মাস্টার থেকে pulling যখন এই সম্মুখীন।

ভিজুয়াল স্টুডিও ব্যবহার করে আমি এটি পরিচালনা করেছি;

  1. প্রথম, আমি আমার সমাধান উপর Undo কমিটি সঞ্চালিত।
  2. তারপর আমি গিট পুল প্রক্রিয়া ছিল।

আশাকরি এটা সাহায্য করবে!


এই ত্রুটি লাইন শেষ কারণে হয়,

git add
git checkout mybranch

কাজ করবে. এটা সত্যিই কাজ কেন আমি সত্যিই নিশ্চিত নই।


এই লাইভ রিমোট সার্ভারে পরিবর্তনগুলি বাতিল করার জন্য এবং উৎস নিয়ন্ত্রণ GitHub থেকে টানতে আমার জন্য কাজ করেছে:

git reset --hard
git pull origin master

এই সমস্ত স্থানীয় পরিবর্তনগুলি ওভাররাইড করতে আমার জন্য কাজ করে এবং একটি পরিচয় প্রয়োজন হয় না:

git reset --hard
git pull

এই সমস্যার সমাধান করার সেরা উপায় হল:

git checkout -- <path/file_name>

এর পরে আপনি ফাইলটি ওভাররাইট করতে পারেন:

git pull origin master

এখানে এমন একটি সমাধান রয়েছে যা পর্যায়ক্রমে পরিবর্তিত হয়েছে:

git reset file/to/overwrite
git checkout file/to/overwrite

কখনও কখনও, এই কাজ কেউ। বিরক্তিকরভাবে, আমি মনে করি LF জিনিসটির কারণে, ফাইলটি মুছে ফেলার কাজটি কীভাবে কাজ করবে, তারপরে টানছে। আমি এই সমাধানটির সুপারিশ করি না, তবে যদি ফাইলটি বিদ্যমান না থাকে তবে জিট আপনাকে অবহেলা করে না যে আপনার পরিবর্তনগুলি (এমনকি পরিবর্তনও নাও হতে পারে) ওভাররাইড হয়ে যাবে এবং আপনাকে চালিয়ে যেতে দেবে।

আপনার নিজের ঝুঁকিতে ব্যবহার করুন।


সাম্প্রতিক --rebase , আপনি --rebase শাখার উপরের দিকে আপনার বর্তমান শাখা ফিরিয়ে আনতে pull কমান্ডের উপর add -r / --rebase যোগ করতে পারেন। সতর্কতা অদৃশ্য হওয়া উচিত, কিন্তু আপনি এমন কিছু ঝুঁকি পাবেন যা আপনাকে সমাধান করতে হবে।

বিকল্পভাবে আপনি বাহিনীর সাথে বিভিন্ন শাখা চেক আউট করতে পারেন, তারপর আবার master ফিরে যান, উদাহরণস্বরূপ:

git checkout origin/master -f
git checkout master -f

তারপর স্বাভাবিক হিসাবে আবার এটি টানুন:

git pull origin master

এই পদ্ধতিটি ব্যবহার করে আপনাকে স্ট্যাশিং ( git stash ) এবং সম্ভাব্য অনুমতি সম্পর্কিত সমস্যাগুলি, ফাইলগুলি git reset HEAD --hard করা (হিট git reset HEAD --hard git clean -fd ), ফাইলগুলি অপসারণ করা ( git clean -fd ) ইত্যাদি সংরক্ষণ করতে পারে। git clean -fd এটি মনে রাখা সহজ।


git stash save --keep-index আমার জন্য কাজ করেনি।

নিচের কমান্ড প্রত্যাশিত হিসাবে কাজ।

git reset --hard
git pull

যদি আপনার প্রয়োজন হয় না তবে এটি সমস্ত স্থানীয় পরিবর্তনকে ওভাররাইড করে।






git-stash