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


567

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

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

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

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

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


সম্পর্কিত কিন্তু কোন ডুপ্লিকেট: stackoverflow.com/questions/52704/...
ড্যানিয়েল Hilgarth

7
@ ব্রায়াননোব্লাচ সম্পূর্ণরূপে একমত! এছাড়াও, এটি 'ওভাররাইটিং' হ'ল এটি 'মার্জ' এর খুব বেশি কিছু নয়? আমি প্রতিদিন এসভিএন মিস করি ...
ব্যবহারকারী 1944491

2
git config core.fileMode falseআমার সময়গুলি সংরক্ষণ করুন
নলওয়েনিগ


আমি যদি সেগুলি ওভাররাইট করতে চাই না তবে কী হবে?
ফিলিপ রেগো

উত্তর:


438

আপনি যদি নিজের কার্যকরী অনুলিপি থেকে সমস্ত স্থানীয় পরিবর্তনগুলি - গিট দ্বারা তালাবিহীন ফাইলগুলি সহ - মুছতে চান তবে কেবল সেগুলিকে স্ট্যাশ করুন:

git stash push --include-untracked

যদি আপনার আর প্রয়োজন না হয় তবে আপনি এখন সেই স্ট্যাশ ফেলে দিতে পারেন:

git stash drop

আপনি যদি ইতিমধ্যে স্টেজেড পরিবর্তনগুলি - যেমন git add- দিয়ে স্ট্যাশ করতে না চান তবে বিকল্পটি যুক্ত করুন --keep-index। তবে নোট করুন, এই স্টেজড পরিবর্তনগুলি যদি প্রবাহের সাথে সংঘর্ষিত হয় তবে এটি এখনও মার্জ হওয়া রোধ করবে।


আপনি যদি স্থানীয় পরিবর্তনগুলির কেবলমাত্র নির্দিষ্ট অংশগুলিকেই ওভাররাইট করতে চান তবে দুটি সম্ভাবনা রয়েছে:

  1. আপনি ওভাররাইট করতে চান না এমন সমস্ত কিছু প্রতিশ্রুতিবদ্ধ করুন এবং বাকীটির জন্য উপরের পদ্ধতিটি ব্যবহার করুন।

  2. git checkout path/to/file/to/revertওভাররাইট করতে চান এমন পরিবর্তনগুলির জন্য ব্যবহার করুন । ফাইলটি মঞ্চস্থ না হয়েছে তা নিশ্চিত করুন git reset HEAD path/to/file/to/revert


সম্ভাবনা # 2 কাজ করে না। কমান্ড কার্যকর করার পরে কিছুই হয় না। টানতে আমি এখনও একই ত্রুটি পেয়েছি।
মে

1
@ ব্যবহারকারী1132363: এটি আমার পক্ষে কাজ করে। দয়া করে এটি প্রথমে একটি একক ফাইল দিয়ে পরীক্ষা করুন। এছাড়াও, আপনি যে ফাইলটি ওভাররাইট করতে চান সেটি মঞ্চস্থ হয় না তা নিশ্চিত করে রেখেছেন।
ড্যানিয়েল হিলগার্থ

3
কৌশলটি ব্যবহার করা ছিল git checkout HEAD^ path/to/file/to/revertহেড Using ব্যবহার করে সমস্ত পার্থক্য হয়েছে।
মে

2
@ ব্যবহারকারী ১১৩৩৩6363: এটি পূর্ববর্তী সংস্করণটি যাচাই করে এবং বর্তমানে যা চেক করে তা নয় not আমি বিশ্বাস করি না যে এটি সঠিক পদ্ধতি।
ড্যানিয়েল হিলগারথ

1
আমাকে বাইরে যেতে হয়েছিল " save --keep-index"
পিটার মর্টেনসেন

318

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

git checkout HEAD^ file/to/overwrite
git pull

7
এটি আমার পক্ষে কাজ করেছে। আপনি এই উত্তর, যেমন প্রসারিত করতে পারে। এটা আসলে কি করছে?
এসি প্যাট্রিস

3
এটি স্থানীয় পরিবর্তনগুলি
হারাচ্ছে

32
কেন হেডের পরিবর্তে হেড?
ইউরা

19
HEAD HE হ'ল হেড ^ 1 এর জন্য সংক্ষিপ্ত, যার অর্থ হ'ল হেডের আগে করা কমিট। আপনি এটির আগে কমিট করার জন্যও হেড HE 2 করতে পারেন। আরও তথ্যের জন্য দেখুন git-scm.com/book/en/v2/... এবং stackoverflow.com/questions/1955985/...
ডেভিডনেধাম

4
দয়া করে উত্তরে এটি কী করে তা ব্যাখ্যা করুন
এন্ডোলিথ

242

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

git reset --hard
git pull

4
সু, এতক্ষণ থ্রেডের নিচে একটি কার্যকরী, অত্যন্ত রেটিংযুক্ত উত্তর খুঁজে পাওয়ার জন্য ওদের র‌্যাঙ্কিং আলগোতে কাজ করা জটিল ome
বেনেডিক্ট কে।

3
@BenedictK। আমি বিশ্বাস করি যে র্যাঙ্কিং সিস্টেমটি যথাযথভাবে "সবচেয়ে বেশি লোককে সবচেয়ে সহায়ক বলে মনে করে" ref তারা ভোটের দ্বারা স্থান পেয়েছে। আরও সমাধান অন্যান্য সমাধান পছন্দ। এটি একটি ভাল সমাধান তবে আরও লোকেরা অন্যান্য উত্তরগুলি আরও সহায়ক বলে মনে করে।
কিটসিল

আমার জন্য শুধু কাজ করে জরিমানা
Ender

সুপার ইজি =) thx ^^
lestat_kim

ট্যাঙ্কগুলি, আমার পক্ষে ভাল কাজ করে
ইগোর

76

এখানে এমন একটি সমাধান রয়েছে যা পর্যায়ক্রমে পরিবর্তনগুলি ছুঁড়ে দেয়:

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

11
বিরক্তিকরভাবে, যদি চেক আউট করার সময় ফাইলটির নতুন লাইনগুলি পরিবর্তিত হয়েছিল এই বিষয়টি থেকে যদি অনুভূত পার্থক্যটি আসে তবে সমস্যাটি সমাধান হবে না।
ড্যানিয়েলস্যাঙ্ক

1
আমার সমস্যার সমাধান।
Loïc এন।

এটিই সেরা উত্তর, ইমো, কারণ এটি কোনও মঞ্চস্থ আইটেমগুলিকে ব্যাহত করে না, তবে টান
ঠেকানো

65

আপনি মার্জ করার আগে আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করতে পারেন, বা আপনি সেগুলি স্ট্যাশ করুন:

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

10
পয়েন্টটি হল, আপনার এটি করা উচিত নয়। কেবলমাত্র বর্তমান হেডের উপাদানগুলি নিয়ে যান এবং ..... এতে মেশান! এটি সত্যিই সহজ, গিত, অন্য সমস্ত ভিসিএস এটি করে ... তবে না। লিনাসটি এটি ব্যবহারে বিরক্তিকর করতে হয়েছিল।
জন

@ জনের এই সমাধানটি উবুন্টুর পক্ষে, এর পরে এর চেয়ে ভাল আর কিছু পাইনি।
সুনীল কুমার

দুর্ভাগ্যক্রমে --autostashবিকল্পটি কেবল --rebaseবিকল্পের সাথেই পাওয়া যায় (
ইউজেন কনকভ

এটি এতটা সমস্যা উপস্থাপন করতে চলেছে এটির পক্ষে এটি উপযুক্ত নয়। কমপক্ষে লোড করতেও 5 মিনিট সময় নেয়। "ফাইলের লিঙ্কমুক্ত" ত্রুটিগুলিও উপস্থাপন করে। ডাউনভোট
ফিলিপ রেগো

51

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

git checkout -- <file>

তারপরে আপনি সর্বাধিক সংস্করণটি দিয়ে ফাইল [গুলি] ওভাররাইট করতে পারেন:

git pull

@ পাবলোক এটি ফাইলের স্থানীয় পরিবর্তনগুলি ধ্বংস করে দিবে।
সুনীল কুমার

6
হ্যাঁ এটি করে: "আমি যদি সেগুলি ওভাররাইট করতে চাই তবে কী হবে?"
ডেভিড

1
আসল প্রশ্ন এটি সক্ষম নয়, এই উত্তরটি এমন কাউকে দুঃস্বপ্ন দিতে পারে যিনি অন্ধভাবে কমান্ডটি অনুলিপি করে অনুলিপি করতে পারেন।
সুনীল কুমার

আপনি যদি ইতিমধ্যে কোনও প্রতিশ্রুতিবদ্ধ হয়ে থাকেন তবে আপনাকে প্রথমে git reset HEAD~git checkout
কমিটটি

git checkout -- <file>ব্যর্থerror: pathspec '<file>' did not match any file(s) known to git.
A__

18

যদি আপনার সংগ্রহস্থলে কয়েকটি ফাইল থাকে যা থেকে সরানো হয় master:

  1. git checkout master
  2. git fetch origin
  3. git reset --hard origin/master
  4. git checkout -b newbranch

12

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

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


যখন আপনার লাইনের শেষের কারণে আটকে যায়, এই পদ্ধতিটি জীবন
রক্ষাকারী

এটি আমার পক্ষে কাজ করছে না। ফাইলগুলি স্থানীয়ভাবে বিদ্যমান নেই এবং আমি এখনও ত্রুটিটি পাচ্ছি।
PRMan

11

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

নীচের কমান্ডটি প্রত্যাশার মতো কাজ করেছিল।

git reset --hard
git pull

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


9

এখানে এতগুলি উত্তর যে আমি আরও একটি যুক্ত করতে ঘৃণা করি, কিন্তু উপরের সমস্তগুলি তার প্রয়োজনের তুলনায় ক্লঙ্কিয়ার। গিটকে বিভ্রান্ত হয়ে উঠছে বলে মনে হচ্ছে এবং আমাকে বলার মতো আমি এমন কিছু ফাইল সংশোধন করেছি যা পরিবর্তিত হয়নি (ফিরে আসতে পারে না কারণ তারা পরিবর্তন করেনি, তবে আমি টানতে পারি না কারণ তারা সম্ভবত পরিবর্তন করেছে) সহজতম এবং আমি এখনও অবধি খুঁজে পেয়েছি:

git stash
git stash drop
git pull

মনোমুগ্ধকর মতো কাজ করেছিল
ব্লেজ

অ্যামেজিং! সহজ এবং কাজের সমাধান।
naïveRSA

উজ্জ্বল, অনেক ধন্যবাদ
হামজা

8

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


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

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

তারপরে এটিকে যথারীতি আবার টানুন:

git pull origin master

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


8

এই সমস্যাটি হ'ল কারণ আপনি স্থানীয়ভাবে ফাইল / গুলি-তে পরিবর্তন করেছেন এবং একই ফাইল / গুলি গিট সংগ্রহস্থলের পরিবর্তনের সাথে উপস্থিত রয়েছে, সুতরাং টান / ধাক্কা দেওয়ার আগে আপনার স্থানীয় স্থানীয় পরিবর্তন প্রয়োজন হবে:

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

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

সমস্ত স্থানীয় পরিবর্তনগুলি ওভাররাইট করতে (সমস্ত ফাইলের পরিবর্তন):

git stash
git pull
git stash pop

এছাড়াও এই সমস্যাটি হতে পারে কারণ আপনি একটি শাখায় রয়েছেন যা মাস্টার শাখার সাথে একীভূত নয়।


5

git reset --hard && git clean -df

সতর্কতা : এটি যেকোনও অন্রে্যাকড ফাইল পুনরায় সেট করে মুছে ফেলবে।


27
কেউ বন্ধুর কপাল থেকে মাছি সরিয়ে কুড়াল ব্যবহার করে না।
সম্মানিতুল

3
কিছু ফাইল মুছে ফেলা হবে এমন সচেতনতা ছাড়াই এটি ব্যবহার করবেন না।
অ্যান্ড্রোমদা


4

এই সমস্যাটি সমাধানের সর্বোত্তম উপায় হ'ল:

git checkout -- <path/file_name>

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

git pull origin master

আমার উল্লেখ করা সমস্যা ছিল কারণ আমি ফাইলগুলি অপরিবর্তিত ছিল ধরে নিতে সূচি আপডেট করেছিলাম। এটি এখনও আমাকে টানতে দেয় না। আমি git checkout -- path/*মাত্র একবার ব্যবহার করেছি , এবং এটি আমাকে পরে টান চালানোর অনুমতি দেয়।
স্টিফেন ও'ফ্লিন

4

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

git reset --hard
git pull origin master

4

সমস্যাটি সমাধান করার জন্য আমার কৌশল এখানে।

সমস্যা বিবৃতি

আমাদের 10 টিরও বেশি ফাইলে পরিবর্তন করা দরকার। আমরা চেষ্টা করেছি PULL (git pull origin master), কিন্তু গিত চিৎকার করেছে:

ত্রুটি: নিম্নলিখিত ফাইলগুলিতে আপনার স্থানীয় পরিবর্তনগুলি মার্জ করে ওভাররাইট করা হবে: দয়া করে আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করুন বা মার্জ করার আগে সেগুলি সংরক্ষণ করুন।

আমরা কার্যকর করার চেষ্টা করেছি commitএবং তারপরেও pullতারা কার্যকর হয়নি।

সমাধান

আমরা আসলে নোংরা পর্যায়ে ছিলাম কারণ ফাইলগুলি "স্টেজিং এরিয়া" ওরফে "সূচক অঞ্চল" এ ছিল এবং কিছু "হেড এরিয়া" ওরফে "লোকাল গিট ডিরেক্টরিতে" ছিল। এবং আমরা সার্ভার থেকে পরিবর্তনগুলি টানতে চেয়েছিলাম।

গিটের বিভিন্ন ধাপ সম্পর্কে একটি স্পষ্ট পদ্ধতিতে তথ্যের জন্য এই লিঙ্কটি দেখুন: জিআইটি পর্যায়

আমরা নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করেছিলাম

  • git stash (এটি আমাদের ওয়ার্কিং ডিরেক্টরিটিকে পরিষ্কার করে দিয়েছে Your আপনার পরিবর্তনগুলি গিট দ্বারা স্ট্যাকের উপরে সংরক্ষণ করা হয়েছে)।
  • git pull origin master (সার্ভার থেকে পরিবর্তনগুলি টানুন)
  • git stash apply (স্ট্যাক থেকে সমস্ত পরিবর্তন প্রয়োগ করা হয়েছে)
  • git commit -m 'message' (পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ)
  • git push origin master (সার্ভারে পরিবর্তনগুলি ঠেলাও)
  • git stash drop (স্ট্যাকটি ফেলে দিন)

আসুন বুঝতে পারি কখন এবং কেন আপনার স্ট্যাশিংয়ের দরকার হয়

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

প্রোজিআইটি , দ্বিতীয় সংস্করণ বইটি থেকে :

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


3

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

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


3

টি এল; ডিআর;

git pull --rebase --autostash
  -r, --rebase[=false|true|merges|preserve|interactive]
       When true, rebase the current branch on top of the upstream branch after
       fetching. If there is a remote-tracking branch corresponding to the upstream

  --autostash, --no-autostash
       Before starting rebase, stash local modifications away if
       needed, and apply the stash entry when done

এখনও কেন এটির উত্তর দেওয়া হয়নি তা আমি জানি না, তবে সমাধান যেমন আপনি দেখতে পাচ্ছেন এটি সহজ। এখানে সমস্ত উত্তর একই পরামর্শ দেয়: আপনার স্থানীয় পরিবর্তনগুলি মুছতে / সংরক্ষণ করতে এবং প্রবাহকে প্রয়োগ করতে, তারপরে (আপনি যদি save) আপনার স্থানীয় পরিবর্তনগুলি শীর্ষে প্রয়োগ করেন।

git pull --rebase --autostashধাপে ধাপে কী করে:

1. your local changes saved by `--autostash`
2. your local commits saved by `--rebase`
3. commits from upstream applied to your branch
4. your local commits are restored on top of upstream
5. your local changes are restored to working directory

আমার কেস (সম্ভবত আপনারও):

আমার স্থানীয় পরিবর্তন আছে (কর্মক্ষম ডিরেক্টরিতে পরিবর্তনগুলি):

এখানে চিত্র বর্ণনা লিখুন

আমি যখন দূরবর্তী পরিবর্তনগুলি টানার চেষ্টা করি তখন আমি ত্রুটি পাই:

এখানে চিত্র বর্ণনা লিখুন

এই পরিবর্তনগুলি স্থানীয় পরিবর্তনের সাথে ছেদ করে না:

এখানে চিত্র বর্ণনা লিখুন

সুতরাং আমি যখন pull --rebase --autostashস্থানীয় পরিবর্তনগুলি কোনও সমস্যা ছাড়াই স্বয়ংক্রিয়ভাবে সংরক্ষণ এবং প্রয়োগ করি

এখানে চিত্র বর্ণনা লিখুন

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


2

আমার এটির একটি বিশেষ কেস ছিল: এটিতে আমার --usume-unchanged একটি ফাইল ছিল। git statusকমান্ডটি কোনও পরিবর্তন দেখায় নি তাই এটি সনাক্ত করা শক্ত ছিল


আমারও একই সমস্যা আছে। আপনি কি এর চারপাশে যাওয়ার কোনও উপায় খুঁজে পেয়েছেন? আমি মনে করি আমি অপসারণ-অপরিবর্তিত রেখে অপসারণের পরে পুনরায় যুক্ত করতে পারলাম ... অপরিবর্তিত সংস্করণগুলি পাওয়ার জন্য আমি নিজে যা করেছি কেবল সেই ফাইলগুলিকে চেকআউট করছিলাম ... কেবলমাত্র চেকআউট / রিবেস / মার্জ করার উপায় আছে কিনা তা ভেবে অবাক হচ্ছি তাদের।
ডেভিড

1
না, আমাকে পুরো "অপরিবর্তিত অনুমান" জিনিসটি ত্যাগ করতে হয়েছিল।

2

আপনি যদি সার্ভারে উত্পাদন পরিবর্তন রাখতে চান তবে কেবল একটি নতুন কনফিগারেশন আইটেমে মার্জ করুন। প্রক্রিয়াজাতকরণ পদ্ধতিটি নিম্নরূপ:

git stash
git pull
git stash pop

হতে পারে আপনি সমস্ত ক্রিয়াকলাপ চালাবেন না। আপনি পরবর্তী কি করতে পারেন তা জানতে পারবেন।


তারপরে কোডটি স্বয়ংক্রিয়ভাবে মার্জ করার জন্য আপনি ফাইলের
গিট ডিফার

1

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

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

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

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

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

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

প্রতিশ্রুতিবদ্ধকরণের জন্য পরিবর্তনগুলি মঞ্চস্থ করা হয়নি: (প্রতিশ্রুতিবদ্ধ হবে তা আপডেট করতে "গিট অ্যাড ..." ব্যবহার করুন) (কার্যনির্বাহী ডিরেক্টরিতে পরিবর্তনগুলি বাতিল করতে "গিট চেকআউট - ..." ব্যবহার করুন)

পরিবর্তিত: myfile.js

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

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


1

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

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

  1. প্রথমত, আমি আমার সমাধানটি পূর্বাবস্থায় ফিরিয়ে আনলাম।
  2. তারপরে আমি গিট পুল প্রক্রিয়াটি করেছি।

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



1

আমি গিটে নতুন এবং আমার সমাধানটি ভাল ধারণা কিনা তা নিশ্চিত নই।

আমি সমস্ত উত্তর পরীক্ষা করে দেখেছি এবং এর মধ্যে কেউই আমার পক্ষে কাজ করেনি!

তবে আমি আরও একটি সমাধান পেয়েছি:

1. Backup both of local and repository versions of the file.
2. Delete the file from repository.
3. git add .
4. git commit
5. git push

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


1

ত্রুটি "নিম্নলিখিত ফাইলগুলিতে আপনার স্থানীয় পরিবর্তনগুলি মার্জ করেই ওভাররাইট করা হবে" আসে কারণ স্থানীয় রেপোতে আপনার কিছু পরিবর্তন রয়েছে যা এখনও কমিট করা হয়নি, সুতরাং দূরবর্তী রেপো থেকে টানানোর আগে কেবল স্থানীয় রেপোতে পরিবর্তন আনুন।

বলুন আপনার রিমোট রেপোর কিছু শাখা xyz রয়েছে এবং আপনি চান যে রিমোট রেপো xyz শাখাটি স্থানীয় রেপো xyz শাখায় মিশ্রিত করা হবে (এতে অনুলিপি করা হবে),

{
git checkout xyz                  //check out to the respective branch in local repo
git commit -m "commiting message" //commit changes if any, in local repo branch xyz
git pull                          //it pulls remote xyz branch into local xyz branch
}

0

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

git add
git checkout mybranch

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


0

পাইচার্মের জন্য, আপনি গিট করতে পারেন -> রিভার্ট করুন এবং তারপরে টানুন।


0

এই বার্তাটি যদি ঘটতেও পারে git-lfs ব্যবহৃত হয় এবং কোনও ফাইল পয়েন্টার একটি আসল ফাইল দ্বারা ওভাররাইট করা হয় ।

তারপরে আপনি ব্যবহার করুন:

git stash
git lfs migrate import
git pull

আমার কেস থেকে সম্পূর্ণ আউটপুট

λ git stash
Saved working directory and index state WIP on master: 5d4ad47 Merge branch 'feature/...' into 'master'
Encountered 1 file(s) that should have been pointers, but weren't:
        public/apple-touch-icon.png

λ git pull
Updating 5a4ad44..b25f79d
error: Your local changes to the following files would be overwritten by merge:
        public/apple-touch-icon.png
Please commit your changes or stash them before you merge.
Aborting

λ git lfs migrate import
migrate: Fetching remote refs: ..., done
migrate: Sorting commits: ..., done
migrate: Rewriting commits: 100% (0/0), done
migrate: Updating refs: ..., done
migrate: checkout: ..., done


λ git pull
Updating 5d4ad47..a25c79a
Fast-forward
 public/apple-touch-icon.png | Bin 2092 -> 130 bytes
 public/favicon.ico          | Bin 6518 -> 1150 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

দেখতে https://github.com/git-lfs/git-lfs/issues/2839


0

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

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