গিটের মূল ফোল্ডার থেকে কীভাবে ফাইলকে বাদ দেওয়া যায়


399

আমি .gitignoreকিছু ফাইল যুক্ত করা হচ্ছে তা বাদ দেওয়ার জন্য ফাইলটি ব্যবহারের বিষয়ে সচেতন , তবে config.phpউত্স ট্রিতে আমার বেশ কয়েকটি ফাইল রয়েছে এবং আমার কেবলমাত্র একটিটিকে বাদ দিতে হবে, অন্যটি সংশোধন নিয়ন্ত্রণের মধ্যে থাকতে হবে root

.gitignoreএটি ঘটতে আমার কী লিখতে হবে ?

উত্তর:


588

ডকুমেন্টেশন থেকে :

যদি প্যাটার্নটিতে স্ল্যাশ / থাকে না, তবে গিট এটিকে শেল গ্লোব প্যাটার্ন হিসাবে বিবেচনা করে এবং .gitignore ফাইলের অবস্থানের সাথে সম্পর্কিত নামের সাথে ম্যাচের জন্য পরীক্ষা করে (কাজ গাছের শীর্ষ স্তরের সাথে সম্পর্কিত যদি .gitignore থেকে না হয় ফাইল)।

একটি শীর্ষস্থানীয় স্ল্যাশ পথের নামের শুরুতে মেলে। উদাহরণস্বরূপ, "/*.c" "" cat-file.c "এর সাথে মেলে তবে" মোজিলা-sha1 / sha1.c "নয়।

সুতরাং আপনার রুটটিতে নিম্নলিখিত লাইনটি যুক্ত করা উচিত .gitignore:

/config.php

1
ধন্যবাদ! আমি এটি এইভাবে চেষ্টা করেছি, তবে কিছু কারণে এটি কার্যকর হয়নি। সম্ভবত কোথাও কোথাও ভুল টাইপ করেছেন =)
পাভেল কারৌকিন

1
যদি এটি কোনও ফাইল নয়, তবে একটি ফোল্ডার এবং আমি সেই ফোল্ডারটিকে রেপো রুটে, এতে থাকা ফাইলগুলি এবং সমস্ত বংশধর সাবফোল্ডার এবং তাদের ফাইলগুলি উপেক্ষা করতে চাই? /folder/?
কোডম্যানএক্স

11
হয় /folder/বা /folderকাজ করবে, তবে প্রান্তে স্ল্যাশ যুক্ত করা ম্যাচটি কেবল ফোল্ডারে সীমাবদ্ধ করে। রুট ডিরেক্টরিতে আপনার যদি 'foo' নামে একটি ফাইল থাকে /foo/তবে এটিকে এড়ানো হবে না, তবে /fooকরবে।
তেহরডফ

আপনি যদি ইতিমধ্যে ফাইলটি কমিট করেন, কমান্ড চালান git rm --cached <file>, অন্যথায় ফাইল উপেক্ষা করা হবে না। থেকে: স্ট্যাকওভারফ্লো.com
ব্রুনো পোলো


29

গিটের পুরানো সংস্করণগুলির জন্য আপনাকে প্রথমে একটি উপেক্ষা প্যাটার্নটি সংজ্ঞায়িত করতে হবে এবং তাত্ক্ষণিকভাবে (পরবর্তী লাইনে) বর্জনকে সংজ্ঞায়িত করতে হবে। [সংস্করণ 1.9.3 (অ্যাপল গিট -50) এ পরীক্ষিত]

/config.php
!/*/config.php

পরবর্তী সংস্করণগুলিতে কেবল নিম্নলিখিতগুলি প্রয়োজন হয় [২.২.১ সংস্করণে পরীক্ষা করা হয়েছে]

/config.php

17

যদি উপরের সমাধানটি আপনার পক্ষে কাজ করে না, তবে এটি ব্যবহার করে দেখুন:

#1.1 Do NOT ignore file pattern in  any subdirectory
!*/config.php
#1.2 ...only ignore it in the current directory
/config.php

##########################

# 2.1 Ignore file pattern everywhere
config.php
# 2.2 ...but NOT in the current directory
!/config.php

এটি সত্যই আমার পক্ষে কাজ করে, /config.phpএকা একা তা করেনি। আমি কেন আগ্রহী তা জানতে পারিনি। তোমার কি কোন ধারনা আছে?
ইয়াগো-লিটো '30

@ আইগো-লিটো আপনি যদি কোনও নির্দিষ্ট প্রকল্পে কাজ করেন এবং কোনও নির্দিষ্ট ডিরেক্টরিতে কোনও ফাইল.একেক্সকে উপেক্ষা করার জন্য এবং একই সাথে অন্য কোথাও উপেক্ষা না করার জন্য লড়াই করে যাচ্ছেন তবে এটিকে /home/me/.gitignore ফাইলটিতে রাখুন: /home/me/path/to/my/project/some/folder/file.ext অথবা ফাইল.ইেক্সট সর্বত্র ফাইল উপেক্ষা করতে এবং তারপরে / home / me / पथ / to / আমার / প্রকল্প / কিছু / ফোল্ডার / .gitignore ফাইলটি এই নির্দিষ্ট ডিরেক্টরিতে এই ফাইলটিকে উপেক্ষা করার জন্য এই file.ext রাখুন। প্রতিটি ফোল্ডারে প্যারেন্ট .gitignore ফাইল (গুলি) সেটিংসগুলির যে কোনও একটিকে ওভাররাইডে তার নিজস্ব .gitignore ফাইল থাকতে পারে ...
drugan

হুঁ। এর অর্থ হল যে অন্যান্য ব্যবহারকারীদের ~/.gitignoreনিজস্ব মেশিনে আলাদা আলাদা ফাইল রয়েছে কিনা তার উপর নির্ভর করে রেপো আলাদাভাবে আচরণ করতে পারে , তাই না? .. তাছাড়া, আমার বক্তব্যটি ছিল: আপনি লিখেছিলেন "উপরের সমাধানটি যদি কাজ না করে" তবে তা কেন হবে না?
iago-lito '

হ্যাঁ, যদি আপনার প্রকল্পটি অজানা পরিবেশে থাকতে পারে তবে আপনার প্রকল্পের মূল ফোল্ডারের উপরে থাকা .gitignore ফাইলগুলিতে কখনই নির্ভর করা উচিত নয়। মনে রাখবেন কনফিগ.এফপি এর মতো ফাইলের নামটি প্রচলিত তাই আপনার রুট .gitignore ফাইলে এই ফাইলটির জন্য যে কোনও সম্ভবত বিদ্যমান সেটিংটি ওভাররাইড করুন।
শ্রুগান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.