উপেক্ষা করা ফাইলগুলি গিটের স্থিতি থেকে দূরে রাখুন


133

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

গিটের পক্ষে এই ফাইলগুলি প্রদর্শন করা কি স্বাভাবিক?

আমি একটি তথ্য উপেক্ষা করা .gitignoreগীত সংগ্রহস্থলের রুট ডিরেক্টরিটি ফাইল এবং তারা যোগ যখন ব্যবহার git add .কিন্তু এটা যে তারা সম্পূর্ণরূপে, হয় উপেক্ষিত নয় কারণ এগুলি উপরোক্ত তালিকায় প্রদর্শিত এবং বলে মনে হয় না তালিকায় প্রদর্শিত দ্বারা মুদ্রিত git ls-files --others -i --exclude-standard। কেবল প্রদর্শিত ফাইলগুলি ~/.gitignoreসেখানে প্রদর্শিত হবে the

এটির কারণ হতে পারে কারণ প্রথম পর্যায়ে আমি তাদের অগ্রাহ্য করি নি এবং তারা কমপক্ষে একবার এইভাবে প্রতিশ্রুতিবদ্ধ হয়েছিল?

উত্তর:


231

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

git update-index --assume-unchanged <file>

অথবা এগুলি দ্বারা সংগ্রহস্থল থেকে সরান

git rm --cached <file>

সম্পাদন করা

এই নিবন্ধটিও এটি ব্যাখ্যা করে


4
আপডেট-সূচক আমার পক্ষে কাজ করেছিল। অজানা সমস্যা যেখানে গিট স্ট্যাটাসটি উপেক্ষা করা ফাইলগুলি দেখায় ... খুব বিরক্তিকর। +1
আবে পেট্রিলো

3
আমি এখনও এই সমস্যা আছে। উপরের কোনটিই আমার পক্ষে কাজ করে নি। উভয় ক্ষেত্রেই গিট বলেছে যে এটি সম্পর্কিত ফাইলগুলির কোনও জ্ঞান নেই তবে তারা এখনও গিট স্ট্যাটাসে দেখায় :(
Cfreak

5
@ সিফ্রিয়াক কি git status -- <file>আপনার ফাইলের জন্য "প্রতিশ্রুতিবদ্ধকরণের জন্য পরিবর্তনগুলি মঞ্চায়িত হয় না" বা "অবিরত ফাইলগুলি" দেখায়? পূর্ববর্তীটি হ'ল যদি আপনার ইতিমধ্যে সূচকে ফাইল রয়েছে এবং আপনার সমস্যা সমাধানের জন্য আমার আরও তথ্য দরকার (আরও ভালভাবে দেখানো গিট বার্তাগুলি সহ পৃথক প্রশ্ন তৈরি করুন এবং মন্তব্যে এর লিঙ্ক পোস্ট করুন)। পরবর্তীতে ফাইলগুলির জন্য যা গিট (এখনও) দ্বারা ট্র্যাক করা হয় না তবে .gitignoreফাইলে নেই এবং নির্দ্বিধায় সূচীতে যুক্ত হতে পারে।
এমবিও

1
@ এমবিও - হ্যাঁ তা করে। ধন্যবাদ! আপনার মন্তব্য আমাকে এই উত্তরটি খুঁজে পেতে সহায়তা করেছে: stackoverflow.com/questions/594757/… যা আমার পক্ষে কাজ করেছিল।
Cfreak

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

16

আমি এই সমস্যাটিও সামনে এনেছি, সম্ভবত এটিই কারণ আপনি প্রাথমিক প্রতিশ্রুত প্রবাহে জিআইটি দ্বারা "ট্র্যাক করার জন্য" হিসাবে চিহ্নিত হওয়ার পরে আপনি আপনার উপেক্ষা করা ডিরেক্টরি / ফাইলগুলি .gitignore এ যুক্ত করেছিলেন।

সুতরাং আপনাকে গিট ট্র্যাকিং ক্যাশেটি এমনভাবে সাফ করতে হবে:

git rm --cached -r [folder/file name]

আরও বিশদ ব্যাখ্যা এখানে পড়তে পারেন: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html

উপরের কমান্ডটি আপনার দূরবর্তী জিআইটি উত্স থেকে ফোল্ডার / ফাইলগুলির অবশিষ্টাংশ সরিয়ে ফেলে। সুতরাং আপনার জিআইটি সংগ্রহশালা পরিষ্কার হয়ে যায়।


11

সমস্যা হতে পারে যে এই ফাইলটি এখনও গিট ক্যাশে রয়েছে। এই সমস্যাটি সমাধান করতে গিট ক্যাশে পুনরায় সেট করতে হবে।

গিট ক্যাশে পুনরায় সেট করুন। এটি সূচি থেকে সবকিছু সরিয়ে দেয়।

git rm -r --cached . 

সমস্ত ফাইল আবার যুক্ত করুন:

git add . 

সমর্পণ

git commit -m ".gitignore was fixed." 


1

আমি ধরে নিয়েছি আপনি টিএমপি ডিরেক্টরি যুক্ত করতে চান না (ভিজ্যুয়াল স্টুডিও প্ল্যাটফর্ম)

1- আপনার স্থানীয় .gitignore ফাইলটিতে নীচে লাইন যুক্ত করুন

## ignore tmp
/tmp/
./tmp/

3- স্থানীয়ভাবে টিএমপি ফোল্ডারটিকে ব্যাকআপ এবং মুছুন। (অন্য কোথাও ব্যাকআপ নিন eg যেমন ডেস্কটপ?)

4- রিমোটে সিঙ্কের চেয়ে স্থানীয়তে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ (যেমন। গিথুব)।

এই পদক্ষেপের পরে আপনার tmp ডিরেক্টরি আবার আপলোড করা হবে না।


0

থেকে মানুষ Git-lsfiles :

-i, --ignored
Show ignored files in the output. Note that this also reverses any exclude list present.

ব্যক্তিগতভাবে আমি আমার উত্স ট্রিতে ডক্সিজেন ফাইলগুলি রাখার প্রবণতা রাখি, তাই আমি কেবল এটি আমার .gitignore (যা আমার উত্স গাছের শীর্ষস্থানীয় ডিরেক্টরিতে রয়েছে) এ যুক্ত করেছি:

docs/*

আশা করি এইটি কাজ করবে.


0

নিম্নলিখিত পদক্ষেপগুলি কেবল অচিহ্নযুক্ত ফাইলগুলির জন্য কাজ করে । নিম্নলিখিত তথ্য কনফিগারেশন জন্য এই তথ্য প্রযোজ্য:

Platform: linux

Git version: git version 1.8.3.1

নিম্নলিখিত অবস্থানে উপস্থিত ফাইলটিকে "বাদ দিন" এ উপেক্ষা করার জন্য ফাইলগুলির তালিকা রাখুন।

<path till .git directory>/.git/info/exclude

"বাদ দিন" ফাইলের প্রাথমিক সামগ্রী

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

"বাদ দিন" ফাইলের চূড়ান্ত সামগ্রী

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~


*.tar
*.gch

0

গৃহীত উত্তর অনুসারে, আপনি ফাইলটি অপরিবর্তিত হিসাবে ধরে নিতে পারেন , যাতে আপনি আপনার স্থানীয় মেশিনে যা কিছু করেন তা আপনার দূরবর্তী শাখায় কমিট না হয়।

কিছুটা এইরকম git update-index --assume-unchanged src/main/resources/config.properties যেখানে src / main.resources / config.properties পথ আপনার প্রকল্পের মধ্যে যে ফাইল খুঁজে পায় তার জন্য একটি নমুনা।

এখন, আপনি যদি আপনার সংগ্রহস্থল থেকে পুরোপুরি ফাইলটি সরাতে চান তবে আপনি ব্যবহার করতে পারেনremove cached instead git rm --cached এর পরিবর্তে

এই পরিস্থিতিতে নিম্নলিখিত পরিস্থিতিতে প্রযোজ্য হতে পারে:

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


-1

এটার মত

git --ignored myfolder

এবং কেবল মাইফোল্ডারের জন্য স্থিতি প্রদর্শন করবে

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