gitignore এ যোগ করার পরে git এখনও ফাইলগুলিকে সংশোধিত হিসাবে দেখায়


252

আমি এটি .gitignore ফাইলটিতে যুক্ত করছি

.idea/*

তবে যাইহোক স্থিতিটি হ'ল:

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml

আমি কি ভুল করছি ? আমি এমনকি .idea / * কে গ্লোবাল ~ / .gitignore_global এ যোগ করেছি তবে গিট স্ট্যাটাস, যাইহোক আমাকে দেখায়:

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml

উত্তর:


422

আপনার .gitignoreকাজ করছে, তবে এটি ফাইলগুলি ট্র্যাক করে কারণ তারা ইতিমধ্যে সূচীতে ছিল।

এটি বন্ধ করতে আপনাকে করতে হবে: git rm -r --cached .idea/

আপনি যখন প্রতিশ্রুতিবদ্ধ তখন .idea/ডিরেক্টরিটি আপনার গিট সংগ্রহস্থল থেকে সরানো হবে এবং নিম্নলিখিত কমিটিগুলি .idea/ডিরেক্টরিটিকে উপেক্ষা করবে ।

PS: আপনি কোনও ডিরেক্টরি উপেক্ষা করার .idea/পরিবর্তে ব্যবহার করতে পারেন .idea/*। আপনি নিদর্শন সম্পর্কে আরও তথ্য পেতে পারেন .gitignore man পৃষ্ঠা


git-rmম্যান পৃষ্ঠা থেকে সহায়ক উদ্ধৃতি

--cached
    Use this option to unstage and remove paths only from the index. 
    Working tree files, whether modified or not, will be left alone.

আপনি কি "স্রেফ যোগ করা .আইডিএ / খুব কাজ করবে" বলতে কী বোঝাতে চেয়েছেন দয়া করে তা ব্যাখ্যা করতে পারেন? এটি কি ব্যবহার .gitignoreএবং তার পরে বিকল্প সমাধান git rm -cached?
মেহরাদ

3
@ মেহরাদকে * ইন গিটিগনোর * এর দরকার নেই
স্টিভ পিচারস

2
না, শুধু .idea যুক্ত করে / কাজ করে না, কারণ আপনি যেমন উত্তরটিতে বলেছিলেন, এটি ইতিমধ্যে সূচীতে রয়েছে।
হেনরিক ডি সোসা

15
সুতরাং আপনি বলছেন যে commitক্যাশেড ফাইলগুলি সরিয়ে দেওয়ার পরে আপনার প্রয়োজন ? এটি সত্যিই পাল্টা স্বজ্ঞাত বলে মনে হচ্ছে; এই ফাইলগুলি আমি প্রতিশ্রুতিবদ্ধ করতে চাই না। এবং আমি এগুলি সংগ্রহস্থল থেকে মুছে ফেলতে চাই না (কেবলমাত্র আমি চাই যে এগুলি আর আমার মধ্যে বিশৃঙ্খলা ঘটাতে থাকবে না git status)। নাকি আমি আসলেই বিভ্রান্ত?
স্কট বিগস

6
পূর্বের প্রতিশ্রুতির কারণে তার ফাইলগুলি ইতিমধ্যে গিট দ্বারা ট্র্যাক করা হয়েছিল, সুতরাং সেগুলি সরাতে আপনাকে একটি নতুন প্রতিশ্রুতি তৈরি করতে হবে যা সেগুলি সংগ্রহস্থল থেকে সরিয়ে দেয়।
এমসিএলএস

47

যে সমস্ত লোকেরা এখনও এই সমস্যাটির সন্ধান করছেন তারা কেবল এই পৃষ্ঠাটি দেখছেন।

এটি আপনাকে ক্যাশেড সূচক ফাইলগুলি সরাতে সহায়তা করবে এবং তারপরে কেবল আপনার .gitignoreফাইলে পরিবর্তনগুলি সহ আপনার প্রয়োজনীয় ফাইলগুলি যুক্ত করবে।

1. git rm -r --cached .  
2. git add .
3. git commit -m 'Removing ignored files'

এখানে আরও কিছুটা তথ্য।

  1. এই কমান্ডটি সূচি থেকে সমস্ত ক্যাশেড ফাইল সরিয়ে ফেলবে।
  2. এই কমান্ডটি উল্লিখিত ফাইলগুলি বাদে সমস্ত ফাইল যুক্ত করবে gitignore
  3. এই কমান্ডটি আপনার ফাইলগুলি পুনরায় প্রতিশ্রুতিবদ্ধ করবে এবং গিটকে অগ্রাহ্য করতে চাইলে যে ফাইলগুলি সরিয়ে ফেলবে সেগুলি সরিয়ে ফেলবে, তবে সেগুলি আপনার স্থানীয় ডিরেক্টরিতে রাখবে।

1
এটি আমার পক্ষে কার্যকর ছিল, আমি কেবলমাত্র লক্ষ করব যে উইন্ডোজ সেন্টিমিটে একক উক্তি # 3 তে কাজ করে না বলে মনে হচ্ছে। গিট কমিট-এ্যাম ব্যবহার করে "উপেক্ষা করা ফাইলগুলি সরানো" যদিও কাজ করে।
Sundance.101

1
কোনও উদ্বেগ নেই, এবং পরিষ্কার এবং সংক্ষিপ্ত উত্তরের জন্য আবার ধন্যবাদ।
Sundance.101

1
এই সমাধানটি আমার প্রকল্পের ফাইলগুলির সাথে সত্যিই গণ্ডগোল করছে। এটি করার পরে আমাকে সবকিছু ফিরিয়ে দিতে হয়েছিল।
ফাতমাজক

1

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

উইন্ডোজ 10-তে ইন্টেলিজ আইডিইএ-তে .gitignoreগিটের সাথে কাজ করার সময় আমি ঘটনাক্রমে কয়েকটি শতাধিক ফাইল সহ কিছু ডক-ডিরেক্টরিকে ক্যাশে করেছিলাম এবং সেগুলিতে যুক্ত করার পরে (এবং সম্ভবত এগুলি কিছুটা ঘুরিয়ে নিয়েছি) আমি সেগুলি ডিফল্ট চেঞ্জলিস্ট থেকে সরাতে পারিনি।

আমি প্রথমে আমার তৈরি প্রকৃত পরিবর্তনগুলি প্রতিশ্রুতি দিয়েছিলাম, তারপরে এটি সমাধান করতে গিয়েছিলাম - আমাকে অনেক বেশি সময় নিয়েছে। আমি চেষ্টা করেছি git rm -r --cached .তবে সর্বদা path-specএররগুলি পেয়ে যাব, এর বিভিন্ন প্রকারের path-specপাশাপাশি পতাকা -fএবং -rপতাকা সহ।

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

git reset

আমি ধরে নিলাম এটি কেবলমাত্র একটি ভাল আইডিএই যখন আপনার কোনও পর্যায়ক্রমিক / ক্যাশেড পরিবর্তন হয় না যা আপনি আসলে প্রতিশ্রুতিবদ্ধ করতে চান।


0

সহজভাবে যুক্ত করুন git rm -r --cached <folder_name/file_name>

কখনও কখনও, আপনি ফাইলের কমিট কমান্ডের পরে .gitignore ফাইল আপডেট করেন update সুতরাং, ফাইলগুলি মেমরিতে ক্যাশে হয়ে যায়। ক্যাশেড ফাইলগুলি অপসারণ করতে উপরের কমান্ডটি ব্যবহার করুন।


-2
  1. গিট অ্যাড।

  2. গিটের অবস্থা // ফাইলটি যাচাই করা হচ্ছে তা পরীক্ষা করুন

    // গিট রিসেট হেড --- আপনি কোন ফাইলটিকে উপেক্ষা করতে চান তা প্রতিস্থাপন করুন

  3. গিট রিসেট হেড .আইডিএ / <- যাঁরা .idea কমিট করার আগে থেকেই // গিট চেকের স্থিতি এবং আইডিয়া ফাইলটি চলে যাবে, এবং আপনি যেতে প্রস্তুত!

  4. গিট কমিট-এম ''

  5. গিট ঠেলা


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