আপনি কখন ফাইলকে বাদ দিতে .gitignore এর পরিবর্তে .git / তথ্য / বাদ দেবেন?


144

ফাইলগুলি ব্যবহার .git/info/excludeএবং ব্যবহার .gitignoreবাদ দেওয়ার পক্ষে আমি কিছুটা বিভ্রান্ত ।

উভয়ই ভাণ্ডার / প্রকল্পের স্তরে রয়েছে, তবে তাদের কীভাবে পার্থক্য হয় এবং কখন আমাদের ব্যবহার করা উচিত .git/info/exclude?

উত্তর:


196

এর সুবিধাটি .gitignoreহ'ল এটি সংগ্রহস্থল থেকে পৃথক পৃথকভাবে পরীক্ষা করা যায় .git/info/exclude। আরেকটি সুবিধা হ'ল আপনার একাধিক .gitignoreফাইল থাকতে পারে, প্রতিটি ডিরেক্টরি / ডিরেক্টরিতে নির্দিষ্ট সাবধানের জন্য একটি সাবডিরেক্টরির মধ্যে একটি বিধি বিপরীত থাকে .git/info/exclude

সুতরাং, .gitignoreসংগ্রহস্থলের সমস্ত ক্লোন জুড়ে উপলব্ধ। অতএব, বড় দলে সমস্ত লোক ফাইল উদাহরণ একই ধরনের উপেক্ষা করা হয় *.db, *.log। এবং একাধিক কারণে আপনার আরও নির্দিষ্ট উপেক্ষা করার নিয়ম থাকতে পারে .gitignore

.git/info/excludeকেবলমাত্র পৃথক ক্লোনগুলির জন্যই উপলভ্য, তাই একজন ব্যক্তি তার ক্লোনটিতে যা উপেক্ষা করেন তা অন্য কোনও ব্যক্তির ক্লোনটিতে পাওয়া যায় না। উদাহরণস্বরূপ, কেউ যদি Eclipseবিকাশের জন্য ব্যবহার করে তবে সেই বিকাশকারীটির .buildফোল্ডার যুক্ত করার জন্য এটি বোধগম্য হতে পারে .git/info/excludeকারণ অন্যান্য ডেভসরা গ্রহনটি ব্যবহার করছেন না।

সাধারণভাবে, ফাইলগুলি / উপেক্ষা করার নিয়ম যা সর্বজনীনভাবে উপেক্ষা করা উচিত সেগুলি প্রবেশ করা উচিত .gitignoreএবং অন্যথায় আপনি কেবল আপনার স্থানীয় ক্লোনটিতে অগ্রাহ্য করতে চান এমন ফাইলগুলিতে প্রবেশ করা উচিত.git/info/exclude


তবে এটি আদর্শগতভাবে এখানে গিট অফিসিয়াল ডকুমেন্টেশন অনুযায়ী। / .gitignore এ যাওয়া উচিত, git-scm.com/docs/gitignore
দেবেন্দ্র স্বামী

@ দেবেন্দ্রস্বামী আমার ~/.gitignoreউপরের আপনার মন্তব্যে কোন নির্দিষ্ট এন্ট্রি করা উচিত তা আমি পাইনি । - আমার বোঝার যে উপেক্ষা করা নিয়ম 3 টি স্তর হতে পারে $PROJECT/.git/info/excludeজন্য (প্রকল্প, ব্যবহারকারী) নির্দিষ্ট নীতিগুলি উপেক্ষা $PROJECT/<any number of directories>/.gitignoreযা প্রকল্পের নির্দিষ্ট জন্য উপেক্ষা কোনো ব্যবহারকারীর জন্য যে কোন জায়গায় জুড়ে নিয়ম (যখন চেক ইন) হয়, ~/.gitignore জন্য ব্যবহারকারীকে নির্দিষ্ট ব্যবহারকারীকে কোনো প্রকল্পের জন্য নিয়ম উপেক্ষা যে মেশিনে। উদ্দেশ্যটির ভিত্তিতে, আপনি প্রবেশ প্রবেশের জায়গাটি বেছে
নেবেন

হ্যাঁ, আপনি একেবারে ঠিক বলেছেন। আমার মন্তব্য এই প্রশ্নের সাথে সম্পর্কিত ছিল স্ট্যাকওভারফ্লো.com
দেবেন্দ্র স্বামী

মূল অসম্পূর্ণ মন্তব্যের জন্য আমি ক্ষমা চাই।
দেবেন্দ্র স্বামী

2
@ শিমি ওয়েইজস্যান্ডলার, আপনার রেপোতে স্লান ফাইলটি ইতিমধ্যে রয়েছে? তারপরে বাদ দিন বা .ignore গিটটিকে এর পরিবর্তনগুলি ট্র্যাকিং থেকে আটকাবে না। নিম্নলিখিতগুলির মধ্যে একটি ব্যবহার করে দেখুন: git rm --cached <path-name>এটি সংগ্রহস্থল থেকে মুছে ফেলা হবে, তবে স্থানীয়ভাবে রাখুন। git update-index --skip-worktree <path-name>ফাইলের পরিবর্তনগুলি অগ্রাহ্য করবে, তবে এটি সংরক্ষণাগারে রাখবে। কৌতূহলের বাইরে: আপনি স্লেন-ফাইল বাদ কেন চান? এটি নেট। সমাধানের একটি গুরুত্বপূর্ণ অংশ?
কোইন

36

গুগলড: ফাইলগুলি বাদ দেওয়ার 3 উপায়

  1. .gitignore এই সংগ্রহস্থলের প্রতিটি ক্লোনগুলির জন্য প্রযোজ্য (সংস্করণযুক্ত, প্রত্যেকের কাছে এটি থাকবে),
  2. .git/info/exclude কেবলমাত্র এই সংগ্রহস্থলের স্থানীয় কপির জন্যই প্রযোজ্য (স্থানীয়, অন্যদের সাথে ভাগ করা হয়নি),
  3. ~/.gitignore আপনার কম্পিউটারের সমস্ত ভান্ডারগুলিতে প্রয়োগ হয় (স্থানীয়, অন্যদের সাথে ভাগ করা হয় না)।

3. আসলে আপনার কম্পিউটারে একটি কনফিগারেশন সেট করতে হবে:

git config --global core.excludesfile '~/.gitignore'

2
হ্যাঁ, আমি এটিও পড়েছি, তবে আরও বাস্তবের (বাস্তব বিশ্বের) দৃষ্টিভঙ্গি পেতে চেয়েছিলাম :-)
প্যারাগ

লিঙ্কযুক্ত ব্লগটি ভুলক্রমে ফাইলটিকে কল করে .git/info/excludes, এটি হওয়া উচিত .git/info/exclude, এটি লিঙ্কযুক্ত ডকুমেন্টেশনের মাধ্যমে নিশ্চিত হওয়া উচিত ।
mwfearnley

13
(স্পয়লার: তৃতীয় উপায়টি হ'ল কম্পিউটার-গ্লোবালটি setting / .gitconfig- এ একটি সেটিংয়ের মাধ্যমে উপেক্ষা করা)
হামিজাইল

@ হ্মিজাইল: ধন্যবাদ, আমি এই মন্তব্যে আপনার মন্তব্যটি অন্তর্ভুক্ত করেছি
লেজিইসি

12

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

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


4

প্রকল্পের.gitignore জন্য সুনির্দিষ্ট বিধিগুলিকে উপেক্ষা করার জন্য ব্যবহার করুন । ব্যবহারের বা একটি বিশ্বব্যাপী বিধি জারি করে যে আপনার নির্দিষ্ট উপেক্ষা জন্য ফাইল উপেক্ষা পরিবেশexclude

উদাহরণস্বরূপ, আমার বিশ্বব্যাপী উপেক্ষা করা ফাইলগুলি আমি যেই সম্পাদক ব্যবহার করছি তার দ্বারা তৈরি টেম্প ফাইলগুলি উপেক্ষা করে rule এই নিয়মটি আমার পরিবেশের জন্য সুনির্দিষ্ট এবং একই প্রকল্পের অন্য কোনও বিকাশকারীদের পক্ষে পৃথক হতে পারে (সম্ভবত তারা আলাদা সম্পাদক ব্যবহার করে)। OTOH, আমার প্রকল্পের .gitignoreফাইলগুলি এপিআই কীগুলি এবং বিল্ডিং আর্টিফিকেসগুলির মতো জিনিসগুলিকে উপেক্ষা করে — এগুলি প্রকল্পের জন্য , এবং প্রকল্পের প্রত্যেকের জন্য একই হওয়া উচিত।

এটা কি সাহায্য করে?

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