.Gitignore আসলে কি?


212

আমি কেবল একটি গিথুব সংগ্রহশালা তৈরি করেছি এবং ভাবছিলাম .gitignoreফাইলটি কী জন্য। আমি একটি তৈরি না করেই শুরু করেছি, তবে বেশিরভাগ সংগ্রহস্থলের একটি থাকার কারণে এটি যুক্ত করেছি। আমার কি দরকার? আমি কি কেবল এটিকে উপেক্ষা করতে পারি, বা এর কোনও ব্যবহার আছে? আমি এই বিষয়ে কিছু গবেষণা করেছিলাম তবে এর কোন ठोस ব্যাখ্যা পাইনি।

উত্তর:


175

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

আপনি এখানে পুরো বিশদ জানতে পারেন ।


সুতরাং আপনি যদি github.com এ একটি নতুন সংগ্রহশালায় একটি .gitignore তৈরি করেন এবং তারপরে একটি গিট আরম্ভ এবং গিট অ্যাড করেন আপনার স্থানীয় কম্পিউটারে - .gitignore এর সাথে এখনও এটি সংযুক্ত নেই কারণ এটি এখনও সেই ভাণ্ডারের সাথে সংযুক্ত নেই - এটি কীভাবে কাজ করে? আমি যখন গিট কমিট সম্পাদন করি তখন এটি কার্যকর হয়? না?
Xonatron

কি জন্য _._gitignoreব্যবহার করা হয়? এটি কেবল তখনই ব্যবহৃত হয় যখন gitignore সাব সাবটিতে থাকে?
সৈকত চক্রবর্তী

সুতরাং এটি স্থানীয়ভাবে থেকে যায়, কিন্তু উত্সকে ধাক্কা দেয় না? সুতরাং যদি কোনও ব্যবহারকারী গিথুব রেপো ডাউনলোড করেন তবে সেই গোপন ফাইলটিও কি এটির সাথে ডাউনলোড হয়ে যায়?
জাভেরীর সাথে

কী উপেক্ষা মানে? কে / কি / কখন উপেক্ষা করে? আমি জানি শব্দের বর্জনটির অর্থ কী তবে আমি গিটের প্রসঙ্গে উপেক্ষা করার অর্থের একটি পরিষ্কার বিবরণ পাই না। স্পষ্টতই এই শব্দটি লোকেদের দ্বারা সম্পূর্ণরূপে বোধগম্য যা এটি বোঝে তবে এমন কিছু যা মানুষের জন্য এমন কিছু সংজ্ঞায়িত করার জন্য লিখিত কিছু যা ইতিমধ্যে জানে না যে প্রসঙ্গে অনন্য সংজ্ঞা রয়েছে এমন সমস্ত পদটি ব্যাখ্যা করা দরকার।
ব্যবহারকারী 34660

1
@ ব্যবহারকারী 34660 উপেক্ষা করুন এর অর্থ কেবল - গিট ফাইলের (প্যাটার্নগুলি) দ্বারা উল্লিখিত ফাইলগুলির পরিবর্তনগুলি ট্র্যাক করবে না .gitignore। আপনি যদি এগুলি পরিবর্তন করেন, গিট তাদের পরিবর্তিত হিসাবে দেখায় না।
মুরিনিক

42

এটি আপনার কাজের ডিরেক্টরিতে গিটকে উপেক্ষা করতে চান এমন ফাইলগুলির একটি তালিকা।

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

গিট ডকস আপনাকে যা জানা দরকার তা আপনাকে জানাবে: http://git-scm.com/docs/gitignore


2
আপনার .DS_Storeদৃশ্যটি অবশেষে আমার সাথে অনুরণিত হয়েছিল কারণ আমি অনুমান করি যে আমি এই ধারণার প্রতি আঁকড়ে নেই because কারণ আমার এখনও এটি কোনও প্রকল্পে ব্যবহার করার প্রয়োজন হয়নি। ধন্যবাদ. আমি ব্যবহার শেষ পর্যন্ত এই একটি আদ্যস্থল হিসাবে হিসাবে আমি সব বিভিন্ন অপারেটিং সিস্টেম বিশেষভাবে লক্ষ ব্যবহার # OS generated files #অধ্যায়।
ফিনিক্স্লাফ

2
আমি জানি আমি এই থ্রেডে দেরি করে ফেলেছি, তবে আপনাকে @ অ্যান্ডিলেস্টারকে ধন্যবাদ! প্রোগ্রামিং এবং গিথুব এলে আমি একজন নবজাতক। আমি দেখতে পেয়েছি যে এই ধরণের প্রশ্নের সমাধানের জন্য লিখিত উত্তরগুলির অনেকগুলি শর্তাবলীতে ভরা আছে যেটি সম্ভবত নবজাতক বুঝতে পারে না (যেমন, সংকলন পণ্যগুলি, অস্থায়ী ফাইল আইডিইগুলি তৈরি করে .... এইচ @ এলএল এই জিনিসগুলি কী!)! তবে আপনার ম্যাকের বর্ণনাটি তার মার্জিত সরলতায় নির্ভুল!
ভেসুচিও

21

আপনি যখন কোন অঙ্গীকার করছেন তখন আপনি দুর্ঘটনাক্রমে অস্থায়ী ফাইলগুলি অন্তর্ভুক্ত করতে বা নির্দিষ্ট ফোল্ডার তৈরি করতে চান না। সুতরাং প্রতিশ্রুতি .gitignoreথেকে উপেক্ষা করতে চান এমন আইটেমের একটি তালিকা ব্যবহার করুন ।

এছাড়াও, গুরুত্বপূর্ণভাবে git status সর্বাধিক ব্যবহৃত একটি কমান্ড যেখানে আপনি git statusসংশোধিত ফাইলগুলি তালিকাভুক্ত করতে চান ।

আপনি চাইবেন যে আপনার git statusতালিকাটি অযাচিত ফাইলগুলি থেকে পরিষ্কার দেখাচ্ছে । উদাহরণস্বরূপ, আমি পরিবর্তন a.cpp, b.cpp, c.cpp, d.cpp & e.cppকরেছি আমি git statusনিম্নলিখিতগুলি তালিকাবদ্ধ করতে চাই :

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp

আমিgit status বিল্ড ফোল্ডারের মধ্যস্থতাকারী অবজেক্ট ফাইল এবং ফাইলগুলির সাথে এই জাতীয় পরিবর্তিত ফাইলগুলি তালিকাভুক্ত করতে চাই না

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
.DS_Store
/build/program.o
/build/program.cmake

অতএব, git statusএই মধ্যবর্তী অস্থায়ী ফাইলগুলি তালিকাভুক্ত করার জন্য এবং দুর্ঘটনাক্রমে রেপোতে তাদের প্রতিশ্রুতিবদ্ধ থেকে নিজেকে মুক্ত রাখতে, আমার এমন একটি তৈরি করা উচিত .gitignoreযা প্রত্যেকেই করে। আমি যে ফাইলগুলি এবং ফোল্ডারগুলি প্রতিশ্রুতিবদ্ধতা .gitignoreথেকে বাদ দিতে চাই তার তালিকা তৈরি করতে হবে।

.gitignoreঅপ্রয়োজনীয় ফাইল প্রতিশ্রুতি এড়ানোর জন্য আমার অনুসরণ করা হল

/*.cmake
/*.DS_Store
/.user
/build

7

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

  1. ট্র্যাক করা - এমন একটি ফাইল যা পূর্বে মঞ্চস্থ বা প্রতিশ্রুতিবদ্ধ ছিল;
  2. অবিরত করা - এমন একটি ফাইল যা মঞ্চায়িত বা প্রতিশ্রুতিবদ্ধ হয় নি; অথবা
  3. উপেক্ষা করা - এমন একটি ফাইল যা গিটকে স্পষ্টভাবে উপেক্ষা করতে বলা হয়েছে।

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

  • নির্ভরতা ক্যাশে, যেমন /node_modulesবা এর বিষয়বস্তু/packages
  • সংকলিত কোড, যেমন .o, .pycএবং .classফাইল
  • বিল্ড আউটপুট ডিরেক্টরি যেমন /bin, /outঅথবা/target
  • রানটাইম এ উত্পন্ন ফাইল, যেমন .log, .lockঅথবা.tmp
  • লুকানো সিস্টেম ফাইল, যেমন .DS_StoreবাThumbs.db
  • ব্যক্তিগত আইডিই কনফিগারেশন ফাইল, যেমন .idea/workspace.xml

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


5

.Gitignore এর মূল উদ্দেশ্য - যাতে আপনি অপ্রাসঙ্গিক ফাইল ইত্যাদি এড়াতে পারেন গিট

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

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