.gitignore এবং "নিম্নলিখিত অবিরত কর্মক্ষম গাছের ফাইলগুলি চেকআউট দ্বারা ওভাররাইট করা হবে"


826

সুতরাং আমি আমার .gitignore ফাইলটিতে একটি ফোল্ডার যুক্ত করেছি।

একবার আমি git statusএটি করি তা আমাকে বলে

# On branch latest
nothing to commit (working directory clean)

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

My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
    public/system/images/9/thumb/red-stripe.jpg
    public/system/images/9/original/red-stripe.jpg
    public/system/images/8/thumb/red-stripe-red.jpg
    public/system/images/8/original/red-stripe-red.jpg
    public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
    public/system/images/7/thumb/red-stripe-dark.jpg
    public/system/images/7/original/red-stripe-dark.jpg
    public/system/images/7/original/DSC07833.JPG
    public/system/images/6/thumb/red-stripe-bw.jpg
    public/system/images/6/original/website-logo.png
    public/system/images/6/original/red-stripe-bw.jpg
    public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/5/original/logocompv-colored-squares-100px.png
    public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/4/thumb/DSC_0001.JPG
    public/system/images/4/original/logo.png
    public/system/images/4/original/DSC_0001.JPG
    public/system/images/4/original/2-up.jpg
    public/system/images/3/thumb/logo2.gif
    public/system/images/3/original/logo2.gif
    public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/3/original/11002000962.jpg
    public/system/images/2/thumb/Profile Pic.jpg
    public/system/images/2/original/Profile Pic.jpg
    public/system/images/2/original/02 Login Screen.jpg
    public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting

আমার .gitignore ফাইলটি দেখতে এমন দেখাচ্ছে:

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/*
public/system/images/*
public/system/avatars/*

আমি কীভাবে এই কাজ করব যাতে এই ফাইলগুলি মোছা না করে আমি শাখাগুলি স্যুইচ করতে পারি?

আমি যদি কোনও পরিবর্তন করি তবে এটি কী এই ফাইলগুলিতে প্রভাব ফেলবে? অন্য কথায়, যদি আমি পরে এই শাখায় ফিরে আসি তবে আমার সর্বশেষ প্রতিশ্রুতি অনুসারে সবকিছু কি নিখুঁত হবে?

আমি এই ফাইলগুলি হারাতে চাই না, আমি কেবল তাদের ট্র্যাক করতে চাই না।


10
যদি আপনি এই ফাইলগুলির বিষয়ে সত্যই যত্নবান না হন: git চেকআউট -f <
ফ্রেঞ্চ

কখনও কখনও যদি আপনি 'গিট চেকআউট' করেন (কোনও শাখার নাম ছাড়াই) হয়। সমাধানের জন্য, do 'Git চেকআউট branchname'
crafter

পৃথক, তবে সমালোচনামূলকভাবে সম্পর্কিত প্রশ্ন: কেন এই ত্রুটিটি আদৌ ঘটে? গিট কেন কেবল শাখাগুলির মধ্যে স্যুইচ করতে পারে না?
আহ্নবিজক্যাড

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

উত্তর:


263

দেখে মনে হচ্ছে আপনি ফাইলগুলি অগ্রাহ্য করতে চান তবে সেগুলি ইতিমধ্যে কমিট করা হয়েছে। ইতিমধ্যে রেপোতে থাকা ফাইলগুলিতে .gitignore এর কোনও প্রভাব নেই তাই তাদের দিয়ে সরানো দরকার git rm --cached--cachedআপনার কাজের কপি কোনো প্রভাব থাকার আটকাতে পারে এবং এটি ঠিক যেমন পরের বার আপনি যখন কমিট মুছে চিহ্নিত হবে। ফাইলগুলি রেপো থেকে সরানোর পরে .gitignore তাদের আবার যুক্ত হতে বাধা দেবে।

তবে আপনার .gitignore নিয়ে আপনার আর একটি সমস্যা রয়েছে, আপনি অত্যধিকভাবে ওয়াইল্ডকার্ড ব্যবহার করছেন এবং এটি আপনার প্রত্যাশার চেয়ে কম মেলাচ্ছেন। পরিবর্তে .gitignore পরিবর্তন করতে এবং এটি চেষ্টা করুন।

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/
public/system/images/
public/system/avatars/

2
ধন্যবাদ .... আমি বর্তমান শাখা থেকে সমস্ত ফাইল সরিয়ে নিয়েছি এবং সেগুলি ব্যাক আপ করেছি। তারপরে শাখা পরিবর্তন করে এগুলি ফিরিয়ে দিন। কাজ করেছে। এছাড়াও, .gitignore টিপটির জন্য ধন্যবাদ যদিও
মারকামিলিয়ন

@ মারকামিলিয়ন: "যে কাজ করেছে" বলতে কী বোঝ? আপনি যে শাখায় স্যুইচ করেছেন সেগুলিতে যদি ফাইলগুলি ট্র্যাক করা থাকে তবে আপনি সেগুলি আপনার সংস্করণগুলি দিয়ে ওভাররাইট করেছেন, যা আলাদা হতে পারে ...
ক্যাসাবেবেল

1
আমার / বিল্ড ফোল্ডারে একটি সমস্যা ছিল যা ট্র্যাক করার দরকার নেই need সুতরাং আমি স্থানীয় ফোল্ডারটি মুছে ফেলেছি, আমার .gitignore ফাইলটি প্রতিশ্রুতিবদ্ধ করেছি, তারপরে অন্য শাখাটি পরীক্ষা করে দেখলাম। অবশেষে এটি আমার পক্ষে কাজ করেছিল।
মাইক এস

16
আমি মনে করি প্রথম অংশটি এই নির্দিষ্ট ত্রুটি বার্তার বিপরীতে for এই ত্রুটিটি ব্যবহারকারীকে বর্তমানে উল্লেখ করা হচ্ছে যে একটি শাখায় বর্তমানে J জেপিজি ফাইলগুলি ট্র্যাক করে না এবং ব্যবহারকারী যেটিতে আছে সেটিতে যাওয়ার চেষ্টা করছে। সুতরাং করার git rm --cachedফলে কোনও পার্থক্য হবে না, সেই ফাইলগুলি বর্তমান শাখায় নেই। এই ত্রুটির জন্য আমি মনে করি ব্যবহারকারীর পরিবর্তে @ গ্রেগ হিউগিলের উত্তরটি অনুসরণ করা দরকার - "তাদেরকে কর্মের অনুলিপি থেকে সরিয়ে নেওয়া, শাখাগুলি স্যুইচ করা, এবং সেগুলি আবার সরানো"।
স্টুডিজ

4
এক সমাধানে সম্পর্কে কিভাবে যেতে হবে your files would be overwrittenসঙ্গে fatal: pathspec 'test/node_modules' did not match any filesযখন আমি কি git rm -r --cache test/node_modules? ওভাররাইট করা বার্তার কারণে আমি টানতে পারি না এবং মুছে ফেলতে পারি না কারণ গিটগুলি তাদের খুঁজে পায় না (তারা সেখানে রয়েছে)
এইচএমআর

1045

সতর্কতা: এটি তালাবিহীন ফাইলগুলি মুছে ফেলবে, সুতরাং এটি উত্থাপিত প্রশ্নের উত্সাহটির দুর্দান্ত উত্তর নয়।

আমি এই বার্তাটিও হিট করেছি। আমার ক্ষেত্রে, আমি ফাইলগুলি রাখতে চাইনি, সুতরাং এটি আমার পক্ষে কাজ করেছে:

গিট 2.11 এবং আরও নতুন

git clean  -d  -f .

পুরানো গিট

git clean  -d  -f ""

আপনি যদি গিট দ্বারা উপেক্ষা করা ফাইলগুলিও সরাতে চান তবে নীচের আদেশটি কার্যকর করুন।

সতর্ক করা হবে!!! এই সবচেয়ে সম্ভাব্য আপনার প্রকল্পটিকে ধ্বংস করে দেয়, আপনি যা করছেন তা যদি আপনি 100% জানেন তবে কেবলমাত্র ব্যবহার করুন

গিট 2.11 এবং আরও নতুন

git clean  -d  -fx .

পুরানো গিট

git clean  -d  -fx ""

http://www.kernel.org/pub/software/scm/git/docs/git-clean.html

  • -x মানে উপেক্ষা করা ফাইলগুলিও মুছে ফেলা হবে পাশাপাশি গিটের অজানা ফাইলগুলিও মুছে ফেলা হবে।

  • -d মানে অচিহ্নযুক্ত ফাইলগুলি ছাড়াও তালিকাভুক্ত ডিরেক্টরিগুলি সরান।

  • -f এটি চালাতে বাধ্য করা প্রয়োজন।


7
ধন্যবাদ, এই পরিষ্কারের পরে আমি রিবেস করতে সক্ষম হয়েছি;
আলেকজান্ডার ব্লেটস্কি

139
সতর্কতা অবলম্বন করা যখন গিট পরিষ্কার!
নোল

249
ফেসপাম এড়াতে প্রথমে এটি কী করবে তা দেখার জন্য ড্রাই-রান বিকল্প দিয়ে এটি চালান: git clean -dfxnবাgit clean -dfx --dry-run
ডেনিস

74
পবিত্র জঞ্জাল। এটি আমার এক্সকোডের সমস্ত কনফিগার ফাইল মুছে ফেলে এবং এখন প্রকল্পটি ম্যাক প্রকল্পে রূপান্তরিত হচ্ছে। এই আদেশটি যখন চলছে তখন খুব যত্নশীল হন। আমি ভেবেছিলাম এটি কেবল গিট থেকে সরিয়ে ফেলবে।
tyegah123

25
-xবিকল্প আমাকে ব্যাথা
wener

589

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

কেবল এটি জোর করুন: git checkout -f another-branch


78
সতর্কতা: এটি সূচিযুক্ত নয় এমন স্থানীয় ফাইলগুলি মুছবে।
givanse

গিট ক্লিন আমার পক্ষে কাজ করে না, তবে জোর করাটাই আমার প্রয়োজন মতো ছিল। এটি সেই শাখায় আটকে ছিল এবং আমার কেবল শাখা পরিবর্তন করার প্রয়োজন ছিল।
সাইমন দি বিড়াল

7
আমি চাইনি যে ফাইলটি ইনডেক্স করা ছিল! আপনার জন্য +1
রায়ানস্ট্যাক

আমি এই ত্রুটি পেয়েছি ,,,(error: pathspec 'mybranch' did not match any file(s) known to git.
বুদি মুলিও

2
এটিই আসল উত্তর।
metamonkey

145

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

git config core.ignorecase true

13
এটি উইন্ডোতেও কাজ করেছে, দেখে মনে হচ্ছে
কেআইটি

4
এটি হ'ল আমার সমস্যাটি হ'ল, একটি ফাইলের পথ একটি চিঠির ক্ষেত্রে আলাদা ছিল - উইন্ডোজ এটিকে একই হিসাবে বিবেচনা করে তবে জিআইটি সমস্যাটি নয়।
ড্যানিয়েল সোকলোভস্কি

1
আমার সমস্যাটি উইন্ডোজ 10 এর অন্য একটি শাখায় চেকআউট করার সময় ঘটেছে, এবং কেবল
এটিই

অসাধারণ! আমি ট্যাগগুলির মধ্যে যখন
চলছিলাম

1
আপনি git rebaseপাশাপাশি চেষ্টা করলে এটিও কাজ করে । ধন্যবাদ।
ব্যবহারকারীর 3890355

42

গিট আপনাকে বলছে যে এটি ফাইল তৈরি করতে চায় (নামকরণ public/system/images/9/...ইত্যাদি) তবে আপনার ইতিমধ্যে সেই ডিরেক্টরিতে বিদ্যমান ফাইল রয়েছে যা গিট দ্বারা ট্র্যাক করা হয়নি । সম্ভবত অন্য কেউ এই ফাইলগুলিকে গিট সংগ্রহস্থলীতে যুক্ত করেছেন এবং আপনি এই শাখায় এই প্রথম পরিবর্তন করেছেন?

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

আমি কীভাবে এই কাজ করব যাতে আমি এই ফাইলগুলি মোছা না করে শাখাগুলি স্যুইচ করতে পারি?

ফাইলগুলি কোনওভাবে অদৃশ্য না করে আপনি এটি করতে পারবেন না। আপনি নামান্তর পারে publicথেকে my_publicএখন জন্য বা কিছু।

যদি আমি পরে এই শাখায় ফিরে আসি তবে আমার সর্বশেষ প্রতিশ্রুতি অনুসারে কি সবকিছুই নিখুঁত হবে?

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


ব্যাখ্যার জন্য ধন্যবাদ. আমি ফাইলগুলি ব্যাক আপ করেছি, শাখাগুলি স্যুইচ করেছি এবং সেগুলি একীভূত করেছি এর পরে ফাইলগুলি পাবলিক ফোল্ডারে প্রতিস্থাপন করেছি। কাজ করেছে।
মার্চামিলিয়ন

1
আমি যেমন @ অ্যারোমাস্টারের উত্তরে মন্তব্য করেছি। এটি ত্রুটি বার্তার সঠিক উত্তর। এই বিশেষত প্রশ্নকর্তার পক্ষে এটি সঠিক উত্তর নাও যেহেতু তিনি বাস্তব সমস্যাগুলি তাঁর গিটিগনোর বলে মনে হয়।
স্টাডিজিক

37

এটি আমার পক্ষে কাজ করেছে।

 1. git fetch --all
 2. git reset --hard origin/{branch_name}

5
আপনার সমাধান সম্পর্কে ব্যাখ্যা যোগ করুন। দেখতে stackoverflow.com/help/how-to-answer
user7294900

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

2
কোনও কারণে, এটি আমার পক্ষে একমাত্র কার্যকরী সমাধান। ধন্যবাদ বন্ধু.
কিওয়াদ

আমার সমস্যার সমাধান। ধন্যবাদ
দেবশিস কান্ত

অনেক ধন্যবাদ, এত সহজ! গিট রিসেট - সফ্ট উত্স / বিকাশ। আমি এই মার্জ সংঘাতের সম্পাদনাটিকে ঘৃণা করি। এই আদেশটি এত সুন্দর এবং সহজ।
নাইনফাইভ

22

এই সূক্ষ্ম টাস্কের জন্য একটি কমান্ড রয়েছে (চিহ্নবিহীন ফাইলগুলি স্থায়ীভাবে মোছা)

git clean -i

তাহলে git pullকরবে।


13

যাদের স্কট স্ক্যাফারের উত্তরের চেয়ে কম সুদূরপ্রসারী কিছু দরকার ,

git clean -f

সম্ভবত কাজ করবে। আমি অত্যন্ত চালানোর পরামর্শ দিচ্ছি

git clean --dry-run

প্রথম। এই কমান্ডটি যদি আপনি চালনা করেন তবে গিট মুছে ফেলবে এমন ফাইলগুলির একটি তালিকা আউটপুট দেবে git clean -fএবং অজান্তে আপনি চান না এমন কিছু অপসারণের ব্যথা বাঁচাতে পারে।

দেখুন এই স্ট্যাক Oveflow উত্তর বা দস্তাবেজ উপর আরও তথ্যের জন্য git clean


12

দুর্ভাগ্যক্রমে আমার পক্ষে তা হয় নি git rm --cachedবা হয় git clean -d -fx ""নি।

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

গল্পটির নৈতিক: .gitignoreশুরু থেকেই একটি ফাইল ব্যবহার করুন।


10

আপনি যদি এই প্রশ্নটি দ্রুত সমাধান করতে চান তবে আপনি এই আদেশটি ব্যবহার করতে পারেন:

git checkout -f dev

আমার বিষয়টি .gitignoreআফাইক সম্পর্কিত না হলে এটি আমাকে সাহায্য করেছিল ।
নাকিলন

ত্রুটি: পাথস্পেক 'দেব' গিট হিসাবে পরিচিত কোনও ফাইল (গুলি) এর সাথে মেলে না।
কালো

@Black 'দেব' হল শাখার নাম, এর পরিবর্তে আপনার শাখা করা
Vinit সোলাঙ্কি

8

আগের কমিটের উপর ভিত্তি করে একটি শাখায় পরীক্ষা করার সময় আমারও একই সমস্যা ছিল। ট্র্যাকযুক্ত ফাইলের কারণে গিট চেকআউট করতে অস্বীকার করেছিল।

আমি একটি সমাধান খুঁজে পেয়েছি এবং আমি আশা করি এটি আপনাকেও সহায়তা করবে।

ক্ষতিগ্রস্থ ডিরেক্টরিগুলিতে যুক্ত করা .gitignoreএবং $ git rm -r --cachedতাদের উপর জারি করা দৃশ্যত যথেষ্ট নয়।

ধরে নিন আপনি কিছু স্টাফ পরীক্ষা করতে এবং বর্তমান সংস্করণে ফিরে আসতে পূর্বের কমিট কে ভিত্তিক একটি শাখা তৈরি করতে চান। আমি নিম্নলিখিত পদক্ষেপে এটি করব:

  1. অবিরত ফাইলগুলি সেটআপ করুন: সম্পাদনা করুন .gitignoreএবং গিটটি $ git rm -r --cachedউপেক্ষা করতে চান এমন ফাইল এবং ডিরেক্টরিগুলিতে প্রয়োগ করুন। ফাইলটি .gitignoreনিজেই যুক্ত করুন .gitignoreএবং জারি করতে ভুলবেন না $ git rm -r --cached .gitignore। এটি পূর্বের কমিটগুলিতে গিট পাতার অগ্রাহ্য আচরণের একই আচরণকে নিশ্চিত করবে।

  2. আপনি সবেমাত্র পরিবর্তন করেছেন:

    $ git add -A
    $ git commit

  3. বর্তমান লগ সংরক্ষণ করুন, অন্যথায় আপনি বর্তমান সংস্করণে ফিরে আসতে সমস্যা পেতে পারেন

    $ git log > ../git.log

  4. কমিটিকে হার্ড রিসেট করুন কে

    $ git reset --hard version_k

  5. কমিট কে ভিত্তিক একটি শাখা তৈরি করুন

    $ git branch commit_k_branch

  6. সেই শাখায় চেকআউট করুন

    $ git checkout commit_k_branch

  7. আপনার জিনিস এবং এটি প্রতিশ্রুতিবদ্ধ

  8. আবার মাস্টারে ফিরে আসুন

    $ git checkout master

  9. আবার বর্তমান সংস্করণে পুনরায় সেট করুন

    $ git reset current_version অথবা $ git reset ORIG_HEAD

  10. এখন আপনি হার্ডকে পুনরায় সেট করতে পারেন

    git reset --hard HEAD

বিঃদ্রঃ! পরবর্তী-থেকে-শেষ ধাপটি এড়িয়ে $ git reset --hard ORIG_HEAD চলবেন না (যেমন, যেমন ) অন্যথায় উপরে অভিযোগ করা তালিকার চিহ্নবিহীন ফাইলগুলি হারিয়ে যাবে।

আমি এটিও নিশ্চিত করেছিলাম যে গিটের বিরুদ্ধে অভিযোগ করা ফাইলগুলি মুছে ফেলা হয়নি। আমি এগুলি একটি পাঠ্য-ফাইলে অনুলিপি করে আদেশটি জারি করেছি$ for i in $(cat ../test.txt); do ls -ahl $i; done

যদি আপনি উপরে উল্লিখিত শাখায় আবার চেকআউট করেন তবে $ git statusকোনও অযাচিত পরিবর্তন উপস্থিত না হয় তা নিশ্চিত করতে ইস্যু করতে ভুলবেন না ।


8

কমান্ড প্রম্পট থেকে গিট ব্যবহার করে একটি উইন্ডোজ 8 সিস্টেমে আমার সাথে এটি ঘটেছিল । আমার দলটির বাকী অংশ টিএফএস ব্যবহার করে এবং আমি টিএফএস এবং আমার স্থানীয় গিট সংগ্রহস্থলের মধ্যে ধাক্কা / টানতে মাইক্রোসফ্টের গিট-টিএফ ব্যবহার করি ।

সমস্যাটি এমন কিছু ফাইলের কারণে দেখা গেছে যা কেবলমাত্র তাদের কেস পরিবর্তন করার জন্য পুনরায় নামকরণ করা হয়েছিল । যা ঘটেছে বলে মনে হয় তা হ'ল:

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

আমার সহজ সমাধানটি হ'ল:

  • git checkoutএই ফাইলগুলির আগে কখনও যুক্ত হওয়ার আগে এই প্রকল্পের পূর্ববর্তী সংস্করণ
  • তারপরে সঠিক ফাইল কেসিং সহ প্রকল্পের git checkoutসর্বশেষতম সংস্করণ

+1 আমি প্রতিশ্রুতিবদ্ধ কেসটি পরিবর্তিত হয়েছে তা দেখার জন্য বর্তমান শাখা এবং শাখায় গিট লগটি পুনরায় ব্যবহার করতে সক্ষম হয়েছি; তারপর আমি এটি প্রায় গভীর ক্ষত ...
ঋষি

4

এই দুটি ফাংশন (গিট আরএম - ক্যাচড, গিট চেকআউট-অন্য-শাখা) আমার পক্ষে কাজ করে নি।

পরিবর্তে, গিট আপনাকে যা করতে বলেছে সে হিসাবে আমি শারীরিকভাবে ফাইলটি (গ্রহণে) সরিয়েছি; আপনি শাখাগুলি স্যুইচ করার আগে দয়া করে সেগুলি সরিয়ে বা সরান।

এবং তারপরে আমি এটি যুক্ত / প্রতিশ্রুতিবদ্ধ।

এবং তারপর আমি টানা এবং এটি কাজ!


4

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

  • git checkout -f my_branch
  • git pull origin master
  • git submodule update --init

3

আমার ক্ষেত্রে git rm --cachedকাজ হয়নি। তবে আমি এটি দিয়ে পেয়েছিgit rebase


3

আমিও একই ধরণের সমস্যার মুখোমুখি হয়েছি এবং আমি উপরে পোস্ট করা সমস্ত সমাধান চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি

ইস্যু সৃষ্ট যখন আমি নতুন নামকরণ আমার onMusicUpdateListener.javaকাছে OnMusicUpdateListener.javadevelopশাখা।

এখন masterছিল onMusicUpdateListener.java এবং developএকই ফাইল ছিলOnMusicUpdateListener.java

এখন যখনই আমি মাস্টার পরিবর্তন করেছি এটি আমাকে একটি ত্রুটি দিয়েছে

The following untracked working tree files would be overwritten by checkout

এবং তারপর এটি aborted

এটি সমাধান করার জন্য, আমি জোর করে checked out masterশাখা করি এবং তারপরে আমার নামকরণ onMusicUpdateListener.javaকরে OnMusicUpdateListener.java, committedএটি এবং তারপরে mergedএটি developশাখা দিয়ে।

তারপর আমি আমার আপডেট developদ্বারা শাখা mergingসেটিকে masterএবং এখন সবকিছু স্বাভাবিক অবস্থায় ফিরিয়ে নেই এবং সমস্যার সমাধান করা হয়।


আমি এর আগেও একই রকম সমস্যায় পড়েছি। আমার বোঝার জন্য, কেস সংবেদনশীলতা সমস্যাটি কেবল উইন্ডোতে সমস্যা বলে মনে হচ্ছে। আমার ধারণা আপনি উইন্ডোতে বিকাশ করছেন?
জি_আইন_ কোডিং

2

এটি কোনও অনুমতি সংক্রান্ত সমস্যা হতে পারে,

মালিকানা পরিবর্তন,

sudo chown -v -R usr-name:group-name folder-name

আমারও একই বিষয় ছিল উইনের মতো। আমি ইতিমধ্যে ট্র্যাক হয়ে যাওয়া একটি ফোল্ডারে একটি .gitignore যুক্ত করেছি। আমি ফাইলটি মুছলাম এবং তারপরে একটি গিট চেকআউট করতে সক্ষম হয়েছি।
cbloss793

2

একই নামের 2 টি ফাইল তবে ভিন্ন ক্ষেত্রে এটি সমস্যা হতে পারে।

আপনি এই ফাইলগুলির মধ্যে একটি মুছতে বা নাম পরিবর্তন করতে পারেন। উদা:

Pdf.html.twig (The GOOD one)

pdf.html.twig (The one I deleted)

2

মুছে ফেলার পরিবর্তে ফাইলগুলি সরান

ফাইলগুলি মুছে ফেলা এড়ানোর এক উপায় হ'ল পরিবর্তে সেগুলি সরিয়ে নেওয়া। উদাহরণ স্বরূপ:

cd "`git rev-parse --show-toplevel`"
git checkout 2>&1 | while read f; do [ ! -e "$f" ] || mv "$f" "$f".bak; done

1

আপনি যদি স্থানীয়ভাবে কোনও ফাইলটির নাম পরিবর্তন করে রেখে থাকেন এবং তা করেন তবে pullএটি ত্রুটি বার্তাটি প্রদর্শন করবে।


সেক্ষেত্রে কীভাবে এই ত্রুটিটি পারা যায়? কোনও ফাইলের নাম (মাইফাইল => মাইফাইল) কেস পরিবর্তন করার পরে শাখাগুলি স্যুইচ করার সময় এই বার্তাটি উপস্থিত হয়।
বার্নহার্ড ডাবলার

1

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

"আপনার শাখা" গিট মার্জ

আমি আশা করি এটি আপনার পক্ষে কাজ করে, আমি কেবল আমার ত্রুটিটি সমাধান করেছি। আমার ত্রুটি ছিল:

ত্রুটি: নিম্নলিখিত অক্ষমযুক্ত কর্মক্ষম গাছের ফাইলগুলি মার্জ করে ওভাররাইট করা হবে: .vs / slnx.sqlite আপনি মার্জ করার আগে দয়া করে সেগুলি সরান বা সরান। গর্ভপাত

এখন এটা কাজ করছে! আমার ক্ষেত্রে .vs / slnx.sqlite ভিজ্যুয়াল স্টুডিও দ্বারা উত্পাদিত হয়েছিল, এটি মুছার আগে আমার এটি বন্ধ করা দরকার।


0

আমার ক্ষেত্রে, আমি এই ত্রুটিটি দেখছিলাম কারণ আমি একটি জনপ্রিয় ওপেন সোর্স সিএমএস ব্যবহার করছি এবং যে ডিরেক্টরিটি সমস্যার কারণ হয়ে দাঁড়িয়েছিল সেটি হ'ল সিএমএস লিখিত আপলোড ডিরেক্টরি।

সুতরাং এটি যা বলছিল তা হ'ল এমন ফাইল রয়েছে যা আপনার কাছে নেই তবে যা আপনি সংস্করণ থেকে পেতে পারেন না।

আমি লাইভ সাইট থেকে সমস্ত লোকাল আমার লোকালয়ে নিয়ে যাচ্ছি, তারপরে আমি রেপোতে এটি পরীক্ষা করে দেখব যে এই সমস্যার সমাধান করে দেয়।


0

এই সমস্যাটি সমাধান করতে অ্যাপনাম / জেন / থেকে .gitignore ফাইলটি মুছুন ।


0

আমি কেবল ফাইল সিস্টেমে গিয়ে ফাইলটি সরাসরি মুছে ফেলেছিলাম, তারপরে গিট চেকআউট দিয়ে চালিয়ে যাচ্ছি এবং এটি কাজ করে।

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


0

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

git merge --strategy=ours master 

0

কেবল ফাইলগুলি মুছুন বা তাদের নতুন নাম দিন।

যেমন

$ git pull
Enter passphrase for key '/c/Users/PC983/.ssh/id_rsa':
error: Your local changes to the following files would be overwritten by merge:
        ajax/productPrice.php
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        ajax/product.php
Please move or remove them before you merge.
Aborting
Updating a04cbe7a..6aa8ead5

আমি নামান্তর করতে / মুছতে ছিল Ajax / product.php এবং Ajax / produtPrice.php

চিন্তা করবেন না, গিট টান তাদের ফিরিয়ে আনবে। আমি আপনাকে মুছে ফেলার পরিবর্তে তাদের নতুন নামকরণের পরামর্শ দিচ্ছি, কারণ আপনি কিছু পরিবর্তন শিথিল করতে পারেন।

যদি এটি সাহায্য না করে, তবে আপনাকে পুরো শাখাটি মুছতে হবে এবং এটি আবার তৈরি করতে হবে এবং তারপরে এটি করতে হবে git pull origin remotebranch


0

পরিবর্তিত ফাইলগুলি সংরক্ষণ করার জন্য এবং পরে পরিবর্তিত সামগ্রী ব্যবহার করতে। আমি একটি শাখা পরীক্ষা করার চেষ্টা করার সময় এবং পুনর্বাসনের চেষ্টা করার সময় এই ত্রুটিটি পেয়েছি। গিট স্ট্যাশ চেষ্টা করুন

git stash


0

কোনও ফোল্ডারের নাম '/' বা কোনও বিশেষ চিহ্ন রয়েছে কিনা তা পরীক্ষা করুন এবং সেই ফোল্ডারগুলির নাম পরিবর্তন করুন। তারপরে আপনি কেবলমাত্র অন্য কোনও স্থানে ভান্ডারটি ক্লোন করে রেখেছেন।


0

একটি সহজ সমাধান হতে পারে: কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনি সঠিক কাজের ডিরেক্টরিতে রয়েছেন GitBash। এই বার্তাটি প্রায়শই প্রতিবার উপস্থিত হয় যদি কোনও ব্যবহারকারী তার ফোল্ডার শ্রেণিবিন্যাসের খুব উচ্চ ডিরেক্টরিকে মার্জ করার চেষ্টা করে।

উদাহরণ:

/workspace/git/myBashSourceFolder/myProjectSourcefolder

পরিস্থিতি: ব্যবহারকারী ক্লোন করা রেপো git-folderতিনি Eclipse এ একটি নতুন জাভা প্রকল্প তৈরি করেছিলেন, ক্লোনড রেপো আমদানি করেছিলেন। গ্রহনটি তার স্থানীয় প্রকল্পে মাইপ্রজেক্টসোর্স ফোল্ডারটিকে উত্স ফোল্ডার হিসাবে সেট করে। সুতরাং ব্যবহারকারী এটি গিট ব্যাশে প্রবেশ করেছে এবং সেখান থেকে ধাক্কা দিয়ে টানছে এবং তার প্রকল্পটি কমিট করেছে। গিট তাই সিঙ্ক করে myProjectSourceFolder- তবে মাইব্যাশসোর্স ফোল্ডারের জন্য তার ইতিহাসে কোনও রেকর্ড নেই। অতএব, মাইব্যাশসোর্সফোল্ডার থেকে একটি ধাক্কা / টান / সংযুক্তি প্রদত্ত আউটপুট উত্পাদন করবে, যদি ব্যবহারকারী তার পরের ফোল্ডারের পরিবর্তে পরের বারের থেকে সিঙ্ক করার চেষ্টা করে।

সমাধান: সঠিক ফোল্ডার লিখুন এবং আবার একটি টান চেষ্টা করুন। প্রায় প্রতিটি সময়ই আমি মুখোমুখি হয়েছি, এই সমাধানটি ভাল কাজ করেছে :)

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