প্রতিটি ফোল্ডার এবং সাবফোল্ডারে সমস্ত। ডিএসএসটোর ফাইল .gitignore


558

আমি .gitignore ফাইলে .DS_Store যুক্ত করেছি, তবে মনে হচ্ছে এটি কেবলমাত্র ডিডিএসএসটিকেই উপেক্ষা করছে every প্রতিটি ফোল্ডার এবং সাবফোল্ডারে নয় directory

আমি কিভাবে এটা ঠিক করব?



আপনি কীভাবে এটি .gitignore এ যুক্ত করেছেন? এটি সমস্ত ডিরেক্টরিতে কাজ করা উচিত (আমার জন্য করে)।
থিলো

এটি আমার জন্যও কাজ করছে। ফাইলটির শেষের দিকেও আমি চেষ্টা করেছিলাম, যদি আপনার কাছে (প্ল্যাটফর্ম নির্দিষ্ট) নতুন লাইন থাকতে হয় তবে এটি পরিবর্তন করে না
enorl76

প্রশ্নটি আমি যেমন বুঝতে পেরেছি তা হল: সহজেই সমস্ত উপ-ডিরেক্টরিতে .SDSore এর সমস্ত উপস্থিতিগুলিকে ম্যানুয়ালি প্রতিটি উপ-ডিরেক্টরিতে এটি না করেই উপেক্ষা করা যায়। আমারও একই সমস্যা ছিল। নীচের উত্তরটি এটি কীভাবে সমাধান করবেন তা দেখায় (শেষ 2 অনুচ্ছেদ)।
পেটরসিন

উত্তর:


644

আমি মনে করি আপনার যে সমস্যাটি হচ্ছে তা হ'ল আগের কোনও প্রতিশ্রুতিতে, আপনি দুর্ঘটনাক্রমে .Dos_Store ফাইলগুলি সংগ্রহস্থলটিতে যুক্ত করেছেন। অবশ্যই, একবার আপনার সংগ্রহস্থলটিতে কোনও ফাইল ট্র্যাক করা হয়ে গেলে এটি প্রয়োগযোগ্য .gitignore ফাইলটিতে একটি এন্ট্রি মেলে এমনকি এটি ট্র্যাক করা অবিরত থাকবে।

আপনাকে নিজের ডিপোজিস্টরিতে যুক্ত হওয়া ডিডিএসএসটোোর ফাইলগুলি ম্যানুয়ালি মুছে ফেলতে হবে। আপনি ব্যবহার করতে পারেন git rm --cached .DS_Store। একবার মুছে ফেলা হলে গিট এটিকে উপেক্ষা করবে। আপনার রুট .gitignore ফাইলটিতে আপনার কেবল নিম্নলিখিত লাইনটি দরকার:.DS_Store। পিরিয়ড ভুলবেন না!

git rm --cached .DS_Storeকেবলমাত্র .DS_Storeবর্তমান ডিরেক্টরি থেকে সরান । আপনি find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatchসমস্ত অপসারণ করতে ব্যবহার করতে পারেন.DS_Stores সংগ্রহস্থল থেকে ।

টিপটি অনুভব করুন: যেহেতু আপনি সম্ভবত কখনওই .ডিএসএস স্টোর ফাইলগুলি অন্তর্ভুক্ত করতে চান না, তাই একটি বিশ্বব্যাপী নিয়ম করুন। প্রথমে কোথাও একটি গ্লোবাল .gitignore ফাইল তৈরি করুন, যেমন echo .DS_Store >> ~/.gitignore_global। এখন গিটকে এটি সমস্ত সংগ্রহস্থলের জন্য ব্যবহার করতে বলুন:git config --global core.excludesfile ~/.gitignore_global

এই পৃষ্ঠাটি আমাকে আপনার প্রশ্নের উত্তর দিতে সহায়তা করেছে: https://help.github.com/articles/ignoring-files


41
শেষ 2 অনুচ্ছেদ এই প্রশ্নের উত্তর দেয়। ধন্যবাদ।
পেটারসিন

70
Itgit আরএম - ক্যাচ করা। ডিডিএস_স্টোর´´ বর্তমান ডিরেক্টরি থেকে কেবল একটি .ডিএসএস স্টোর সরিয়ে দেয়। আইফ্যান্ড ব্যবহার করুন। -নাম .ডিএসএসটোয়ার -প্রিন্ট 0 | xargs -0 git rm --ignore-unmatch´´ to all all .Dos_Stores from the repo
auco

4
উপেক্ষা করার জন্য অন্যান্য সাধারণ ফাইলগুলির একটি তালিকা হাতের হতে পারে
জিওথেরি

14
গ্লোবাল রুল আইএমও ব্যবহার করার খারাপ ধারণা আইএমও: একাধিক ব্যবহারকারী / মেশিন জুড়ে বৈশ্বিক কনফিগারেশন বজায় রাখার চেষ্টা কখনও কার্যকর হয় না - আপনি রেপোতে আপনার রেপো পরিচালিত নিয়মগুলি চান। এর সাথে একমত
ইয়ারিন

15
আমি আপনার সাথে একমত নই. (যদিও আমি আপনার মন্তব্যটিকে উজ্জীবিত বলে মনে করি না।) আমরা যদি বিশ্বব্যাপী করি তবে প্রতিটি ম্যাক ব্যবহারকারীকে এটি করা দরকার তবে কেবল একবার। আমরা যদি রিপোজিটরি প্রশস্ত করি, তবে আমাদের প্রতিটি সংগ্রহস্থলের জন্য এটি করা দরকার। আমি আপনার সম্পর্কে জানি না, তবে আমি সর্বদা নতুন রেপো তৈরি করি। বিশ্বব্যাপী এটি করে, কেউ একবার এবং সকলের জন্য সমস্যার সমাধান করে।
এডওয়ার্ড নেওয়েল

354

যোগ **/.DS_Storeমধ্যে .gitignoreসাব ডিরেক্টরির জন্য


যদি .DS_Storeইতিমধ্যে প্রতিশ্রুতিবদ্ধ হয়:

find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch

সমস্ত সংগ্রহস্থলে এগুলি উপেক্ষা করার জন্য: (কখনও কখনও এটির নামও দেওয়া হয় ._.DS_Store)

echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global

এখনও আমার রেপোতে আপলোড হয়েছে?
ফ্রেডি সিদৌরুক

@ ফ্রেডিসিদাউরুক git rm --cached your_fileপ্রথম ব্যবহার করুন
রোনাল্ড 8192

@FreddySidauruk হওয়া উচিত find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch: থেকে, stackoverflow.com/questions/18393498/...
ronald8192

1
-fআপেক্ষিক ফোল্ডারে যদি আপনার কাছে ফাইল খোলা থাকে তবে এটি যুক্ত করা দরকার বলে মনে হয়:find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
মেহমেট কাপলান

157

.ডিএস_সেটোরটি কখনই আপনার গিট সংগ্রহস্থলটিতে যুক্ত করা হয়নি, কেবল এটি আপনার .gitignore ফাইলটিতে যুক্ত করুন।

আপনার যদি না থাকে তবে ডাকা একটি ফাইল তৈরি করুন

.gitignore

আপনার অ্যাপ্লিকেশন এর মূল ডিরেক্টরিতে এবং সহজভাবে লিখুন

**/.DS_Store

এটা. এটি কখনই .ডিএস_সেটোর ফাইলটিকে আপনার গিটে ঝাঁকুনির অনুমতি দেয় না।

তবে এটি যদি ইতিমধ্যে থাকে তবে আপনার টার্মিনালে লিখুন:

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

তারপরে আপনার দূরবর্তী রেপো থেকে .D_S_Store অপসারণ করতে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করুন এবং চাপ দিন:

git commit -m "Remove .DS_Store from everywhere"

git push origin master

এবং এখন আপনার .gitignore ফাইলে .DS_Store যুক্ত করুন এবং তারপরে আবার কোডের 2 টি শেষ টুকরো (গিট কমিট ..., গিট পুশ ...) দিয়ে কমিট করুন এবং চাপুন


3
ডাবল নক্ষত্র কেন? ওটার মানে কি?
মিলানজি

1
@ মিলানজি এটি একটি মূলশব্দ যা এর মূল অর্থ 'এই ডিরেক্টরিতে এবং সমস্ত উপ ডিরেক্টরিতে সন্ধান' means
lachie_h

1
ডাবল নক্ষত্রটি কী বোঝায় তার নিখুঁত ব্যাখ্যা এটি নিশ্চিত নয়। এটি একটি ওয়াইল্ডকার্ড। গেল *বা **কি আপনি অর্জন করতে চান উপর নির্ভর করে। ডিরেক্টরিটি কীভাবে নেভিগেট করতে হয় এটি শেলকে বলার একটি উপায়। এই Stackoverflow উত্তর এটা ব্যাখ্যা করে সম্পূর্ণরূপে stackoverflow.com/a/28199633/4092170
El'Magnifico

** কখনও লুকানো (./) ডিরেক্টরিগুলির সাথে মেলে না: facelessuser.github.io/wcmatch/glob
জোনাথন

এটি আসলে কাজ করে ... উত্তর হিসাবে চিহ্নিত করা উচিত
ichimaru

85

আপনার .gitignore ফাইলটি দেখতে এমন হওয়া উচিত:

# Ignore Mac DS_Store files
.DS_Store

যতক্ষণ আপনি স্ল্যাশ অন্তর্ভুক্ত করবেন না, ততক্ষণ এটি সমস্ত ডিরেক্টরিতে ফাইলের নামের সাথে মিলে যায়। (থেকে এখানে )


এটি এখনও রেপোতে উত্থিত হয়েছে
ফ্রেডি সিদরুক

@ ফ্রেডিসিদাউরুক তারপরে আপনাকে দৌড়াতে হবেgit rm --cached path/to/file/here
Sgnl

23

পদক্ষেপ 1, সমস্ত *.DS_storeফাইল মুছুন । কেউ দৌড়াতে পারে

git rm -f *.DS_Store

তবে সচেতন rm -fহোন যে আপনার টাইপো থাকলে কিছুটা বিপজ্জনক হতে পারে! দ্বিতীয় পদক্ষেপ: যোগ করুন

*.DS_Store
.DS_Store

to .gitignore। এটি আমার পক্ষে কাজ করেছিল!


13

যোগ *.DS_Storeআপনার .gitignore ফাইলে। এটি আমার পক্ষে নিখুঁতভাবে কাজ করে


11

এছাড়াও আপনি যোগ করতে পারেন --cached, স্থানীয় .DS_store ফাইল বজায় রাখার জন্য auco এর উত্তর পতাকা এডওয়ার্ড নিউওয়েল তার মূল উত্তর উল্লেখ করেছে। পরিবর্তিত কমান্ডটি এর মতো দেখাচ্ছে: find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch..চায়ার্স এবং ধন্যবাদ!


5

পদক্ষেপ: 1) এই কমান্ডটি ব্যবহার করে বিদ্যমান ফাইলগুলি সরান

অনুসন্ধান . -নাম .ডিএসএসটোয়ার -প্রিন্ট 0 | xargs -0 git rm -f --ignore-unmatch

পদক্ষেপ: ২) আপনার .gitignore ফাইলে .DS_Store যুক্ত করুন

পদক্ষেপ: 3) .gitignore গিট অ্যাডে আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করুন। Gitignore গিট কমিট-এম "সরানো .ডিএসএসটোোর"


3
  1. $ git rm ./*.DS_Store - সমস্ত। ডিএসএস স্টোর গিট থেকে সরান
  2. $ echo \.DS_Store >> .gitignore - অগ্রাহ্য করুন। ভবিষ্যতে ডিএস_সেটোর

প্রতিশ্রুতিবদ্ধ এবং ধাক্কা

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