.gitignore ফোল্ডার বাদ দিন তবে নির্দিষ্ট সাবফোল্ডার অন্তর্ভুক্ত করুন


962

আমার ফোল্ডারটি application/আমি যুক্ত করছি .gitignoreapplication/ফোল্ডারের ভিতরে ফোল্ডারটি রয়েছে application/language/gr। আমি এই ফোল্ডারটি কীভাবে অন্তর্ভুক্ত করতে পারি?

আমি এই চেষ্টা করেছি

application/
!application/language/gr/

কোন ভাগ্য ছাড়া ...


1
আশা করি, " .gitignoreপ্যাটার্ন ফর্ম্যাট" ডকুমেন্টেশন সবেমাত্র পরিষ্কার হয়ে গেছে (ডিসেম্বর 2013)) দেখুন নিচের আমার উত্তর
VonC

আমার প্রিয় প্রশ্ন এবং উত্তর, ফেভারিটে পাশাপাশি ব্রাউজার বুকমার্কগুলিতে যুক্ত হয়েছে।
কোডকিডি

উত্তর:


1610

যদি আপনি বাদ দেন application/, তবে এর অধীনে থাকা সমস্ত কিছু সর্বদা বাদ দেওয়া হবে (এমনকি পরে কিছু নেতিবাচক বর্জন প্যাটার্ন ("আনইগনোর") এর সাথে কিছু মিলতে পারে application/)।

আপনি যা চান তা করতে, আপনাকে "আনইগনোর" করতে চান এমন প্রতিটি প্যারেন্ট ডিরেক্টরিকে "আনইনগাইন" করতে হবে। সাধারণত আপনি জোড়ায় এই পরিস্থিতির জন্য নিয়ম লেখার শেষ করেন: একটি ডিরেক্টরিতে সমস্ত কিছু উপেক্ষা করুন, তবে কিছু নির্দিষ্ট উপ-ডিরেক্টরি নয়।

# you can skip this first one if it is not already excluded by prior patterns
!application/

application/*
!application/language/

application/language/*
!application/language/gr/

দ্রষ্টব্য
অনুধাবন /*গুরুত্বপূর্ণ:

  • প্যাটার্নটির dir/নামের নীচে থাকা একটি ডিরেক্টরি dirএবং (অন্তর্নিহিত) এর অধীনে থাকা সমস্ত কিছু বাদ দেয় ।
    এর সাথে dir/, গিট কখনই কোনও কিছুর নীচে তাকাবে না dirএবং এইভাবে কোনও কিছুই "আন-বাদ দেওয়া" নিদর্শনগুলি এর অধীনে কোনও ক্ষেত্রে প্রয়োগ করবে না dir
  • প্যাটার্নটি নিজের dir/*সম্পর্কে কিছুই বলে না dir; এটি কেবল সমস্ত কিছু বাদ দেয় dir। এর সাথে dir/*, গিট সরাসরি dirঅন্যান্য বিষয়বস্তুগুলিকে প্রক্রিয়া করবে , যা অন্যান্য নিদর্শনগুলিকে কিছুটা বিষয়বস্তুতে "আন-বর্জন" করার সুযোগ দেবে ( !dir/sub/)।

12
পেছনের তারকাচিহ্নগুলি কি তাৎপর্যপূর্ণ? যদি তাই হয়, অর্থের মধ্যে পার্থক্য কী? গিটিগনোর ডকুমেন্টেশনে বর্ণিত অ্যালগরিদম অনুসারে , একটি পিছনে স্ল্যাশের সাথে শেষ হয়ে সেই ডিরেক্টরিটির নীচে একটি ডিরেক্টরি এবং পাথের সাথে মেলে। একটি নক্ষত্রের সাথে সমাপ্তি তখন গ্লোব প্যাটার্ন হিসাবে চিকিত্সায় পড়ে যাবে। পরীক্ষাগুলি কাজের জন্য নক্ষত্রের রূপটি দেখায়, তবে কেবল শেষের স্ল্যাশের মধ্যে শেষ হয় না। আমি কেন বুঝতে পারি তা বুঝতে চাই।
সেহ

122
@ সেহ: হ্যাঁ, পিছনেটি /*তাৎপর্যপূর্ণ। যদি কোনও ডিরেক্টরি বাদ দেওয়া হয় তবে গিট কখনই সেই ডিরেক্টরিটির বিষয়বস্তুর দিকে নজর দেবে না। প্যাটার্নটির dir/নামের নীচে থাকা একটি ডিরেক্টরি dirএবং (অন্তর্নিহিত) এর অধীনে থাকা সমস্ত কিছু বাদ দেয় । প্যাটার্নটি নিজের dir/*সম্পর্কে কিছুই বলে না dir; এটি কেবল সমস্ত কিছু বাদ দেয় dir। এর সাথে dir/, গিট কখনই কোনও কিছুর নীচে তাকাবে না dirএবং এইভাবে কোনও কিছুই "আন-বাদ দেওয়া" নিদর্শনগুলি এর অধীনে কোনও ক্ষেত্রে প্রয়োগ করবে না dir। এর সাথে dir/*, গিট সরাসরি dirঅন্যান্য বিষয়বস্তুগুলিকে প্রক্রিয়া করবে , যা অন্যান্য নিদর্শনগুলিকে কিছুটা বিষয়বস্তুতে "আন-বর্জন" করার সুযোগ দেবে ( !dir/sub/)।
ক্রিস জনসেন 12:58

7
আহ, এটি ব্যাখ্যা করে। আমি গিটিগনোর ডকুমেন্টেশনটি কতবার পড়েছি তা যখনই বোঝা যায় না, কখন উল্টানো নিদর্শনগুলি কাজ করে না আমি কখনই বুঝতে পারি না। আপনার ব্যাখ্যা সহ, এটি এখন পরিষ্কার। এটি কীভাবে করা যায় তা বোঝানোর জন্য গিটিগনোর ডকুমেন্টেশনের একটি "রেসিপি" বিভাগ প্রয়োজন।
সেহ

8
আমি এটি কাজ করতে বেশ পাচ্ছি না (পাগল .gitignore ফাইল!), সুতরাং পরিবর্তে আমি কেবলমাত্র ডিরেক্টরিটি সিডি করার পরে জোর করে যুক্ত করেছি directory git add -f .
K0D4

2
নোট করুন যে আপনি আউটপুট উপর নির্ভর করতে পারবেন না git status, যা আপনাকে কেবলমাত্র শীর্ষ স্তরের ডিরেক্টরি যুক্ত করতে চলেছে বলে দেবে। পরিবর্তে, git addশীর্ষ স্তরের ডিরেক্টরিগুলির মধ্যে একটি করুন এবং তারপরে git status(আশাবাদী) প্যাটার্নের সাথে মিলে যাওয়া ফাইলগুলির উপসেটটি তালিকাভুক্ত করবেন।
ম্যাথু স্ট্রব্রিজ

136

গিট 1.9 / 2.0 (কিউ 1 2014) এর জন্য কার্স্টেন ব্লিজ (কবলিস) এর কাছ থেকে 59856de প্রতিশ্রুতিবদ্ধ সেই কেসটি স্পষ্ট করে:

gitignore.txt: বাদ দেওয়া ডিরেক্টরিগুলির পুনরাবৃত্ত প্রকৃতি স্পষ্ট করে

একটি !alচ্ছিক উপসর্গ " " যা প্যাটার্নটিকে উপেক্ষা করে; আগের প্যাটার্ন দ্বারা বাদ দেওয়া কোনও মিলে যাওয়া ফাইল আবার অন্তর্ভুক্ত হবে।

যদি সেই ফাইলটির কোনও পিতামহিত ডিরেক্টরি বাদ দেওয়া হয় তবে কোনও ফাইল পুনরায় অন্তর্ভুক্ত করা সম্ভব নয়। ( *)
( *: যদি না কিছু অবস্থার Git 2.8+ মিলিত হয়, নিচে দেখুন)
গীত তালিকা বহির্ভূত নয় কর্মক্ষমতা কারণে ডিরেক্টরি, তাই অন্তর্ভুক্ত ফাইল কোন নিদর্শন কোনো প্রভাব, সেটা ব্যাপার যেখানে তারা সংজ্ঞায়িত করা হয় না।

আক্ষরিক " " দিয়ে শুরু হওয়া নিদর্শনগুলির জন্য \প্রথম " !" এর সামনে একটি ব্যাকস্ল্যাশ (" ") রাখুন !, উদাহরণস্বরূপ, " \!important!.txt"।

নির্দিষ্ট ডিরেক্টরি ব্যতীত সমস্ত কিছু বাদ দেওয়ার উদাহরণ foo/bar(নোট করুন /*- স্ল্যাশ ছাড়াই, ওয়াইল্ডকার্ডের মধ্যে সমস্ত কিছু বাদ দেওয়া হবে foo/bar):

 --------------------------------------------------------------
     $ cat .gitignore
     # exclude everything except directory foo/bar
     /*
     !/foo
     /foo/*
     !/foo/bar
 --------------------------------------------------------------

আপনার ক্ষেত্রে:

application/*
!application/**/
application/language/*
!application/language/**/
!application/language/gr/**

প্রদত্ত ফোল্ডারের মধ্যে ফাইলগুলি সাদা তালিকাতে সক্ষম হওয়ার আগে আপনাকে অবশ্যই প্রথমে ফোল্ডারগুলি সাদা-তালিকাভুক্ত করতে হবে।


ফেব্রুয়ারী / মার্চ ২০১ Update আপডেট করুন:

নোট করুন যে গিট 2.9.x / 2.10 (২০১ mid এর মাঝামাঝি?) দিয়ে এই ফাইলটির পিতামহিত ডিরেক্টরিটি যদি আবার যুক্ত করার পথে কোনও ওয়াইল্ডকার্ড না থাকে তবে কোনও ফাইল পুনরায় অন্তর্ভুক্ত করা সম্ভব হতে পারে ।

Nguyễn Thái Ngọc Duy ( pclouds) এই বৈশিষ্ট্যটি যুক্ত করার চেষ্টা করছেন:

সুতরাং গিট ২.৯++ এর সাহায্যে এটি আসলে কাজ করতে পারে তবে শেষ পর্যন্ত উল্টে গেছে:

application/
!application/language/gr/

আমি আপনার উত্তরটির শেষে উইন্ডোগুলির জন্য গিটে পোস্ট হওয়া আপডেট হওয়া পুনরায় অন্তর্ভুক্ত বাক্য গঠনটি ব্যবহার করার চেষ্টা করেছি v2.8.1.windows.1তবে এটি কাজ করে না :(
ডেভিড হ্যানকক

1
@ ডেভিডহানকক দুঃখিত, আমি উত্তরটি সম্পাদনা করেছি: এটি এখনও উপলভ্য নয়।
ভনসি

1
@ ডেভিডহ্যাঙ্ককও আমাকে: এটি 13 টিরও বেশি স্ট্যাক ওভারফ্লো উত্তর যা আমাকে একাধিকবার সম্পাদনা করতে হয়েছিল!
ভনসি

5
গিট 2.9 মুক্তি পেয়েছিল গতকাল। উত্তরে বর্ণিত application/+ !application/language/gr/প্যাটার্নটি নিশ্চিত করা প্রত্যাশা অনুযায়ী কাজ করছে।
রায় শান

1
@ রায়শান অদ্ভুত: আমি ফিচারটি ফিচারটি বাতিল করতে দেখলাম, কিন্তু আমি দেখিনি (এবং রিলিজ নোট github.com/git/git/blob/master/Docamentation/RelNotes/2.9.0.txt এর উল্লেখ নেই) .gitignore নিয়ম উন্নতি করতে কোন প্রতিশ্রুতিবদ্ধ।
ভনসি

52

@ ক্রিস জনসনের উত্তর দুর্দান্ত, তবে গীতের নতুন সংস্করণ (১.৮.২ বা তার পরে) এর সাথে একটি দ্বিগুণ নক্ষত্রের ধরণ রয়েছে যা আপনি আরও কিছুটা শর্টহ্যান্ড সমাধানের জন্য লাভ করতে পারেন:

# assuming the root folder you want to ignore is 'application'
application/**/*

# the subfolder(s) you want to track:
!application/language/gr/

আপনি যে সাবফোল্ডারটি ট্র্যাক করতে চান তার এই প্যারেন্ট ডিরেক্টরিটি আপনাকে "আনইনগেইন" করতে হবে না।


গিট ২.১17.০ (আপনার সংস্করণটির আগে কত তাড়াতাড়ি তা নিশ্চিত নয় P সম্ভবত ১.৮.২-এ ফিরে আসা) **আপনার ফাইলের কাজগুলি পর্যন্ত প্রতিটি উপ-ডিরেক্টরিতে বাদ পড়ার সাথে মিলিত প্যাটার্নটি ব্যবহার করে। উদাহরণ স্বরূপ:

# assuming the root folder you want to ignore is 'application'
application/**

# Explicitly track certain content nested in the 'application' folder:
!application/language/
!application/language/gr/
!application/language/gr/** # Example adding all files & folder in the 'gr' folder
!application/language/gr/SomeFile.txt # Example adding specific file in the 'gr' folder

9
হায়, এটি ব্যর্থ হয় (গিট 1.8.4.msysgit.0) কারণ প্যাটার্নটি **শূন্য সাবফোল্ডারগুলির সাথে *মেলে languageএবং এটি মিলবে এবং এটিকে বাদ দেবে, এর অন্তর্ভুক্তি রোধ করবে gr। ক্রিস জনসনের পরামর্শ দেওয়া পিতা-মাতার পূর্ণ শৃঙ্খলা এখনও প্রয়োজনীয় মনে হয়েছে।
শন গুগলার

3
নিখুঁত মনে হচ্ছে তবে এটি আমার জন্য গিট /www/**/* !/www/config.xml !/www/res২.৩..7 ... কনফিগ.এক্সএমএল এবং রেজ ডিরেক্টরিতে এখনও উপেক্ষা করা যায় না on
রব

@ রব আপনার যোগ করার প্রয়োজন !/www/res/। আপনি folder/**/*প্যাটার্নটি ব্যবহার করতে পারেন , তবে আপনার যুক্ত হওয়া প্রতিটি উপ-ডিরেক্টরিতে আপনাকে এখনও বাদ দিতে হবে। এটি কম্বো উপেক্ষা / বাদ দেওয়ার চেয়ে আরও খাটো এবং আরও পঠনযোগ্য।
বেন কেন

আমি জানি এটি একটি পুরানো মন্তব্য, তবে আপনি যদি কৌতূহলী হন। আমি এই পদ্ধতির ডকুমেন্টিং উত্তরে একটি সম্পাদনা যুক্ত করেছি।
বেন কেন 16

21

এই সম্পর্কে অনেকগুলি অনুরূপ প্রশ্ন রয়েছে, তাই আমি আগে যা লিখেছিলাম তা পোস্ট করব:

আমার মেশিনে কাজ করার জন্য আমি যেভাবে পেলাম তা হ'ল এটি এইভাবে করা:

# Ignore all directories, and all sub-directories, and it's contents:
*/*

#Now ignore all files in the current directory 
#(This fails to ignore files without a ".", for example 
#'file.txt' works, but 
#'file' doesn't):
*.*

#Only Include these specific directories and subdirectories:
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/
!wordpress/*/wp-content/themes/*
!wordpress/*/wp-content/themes/*/*
!wordpress/*/wp-content/themes/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*/*

আপনি যে স্তরটি অন্তর্ভুক্ত করতে চান তার জন্য কীভাবে আপনাকে স্পষ্টভাবে কন্টেন্টের অনুমতি দিতে হবে তা লক্ষ্য করুন। সুতরাং আমার কাছে থিমের অধীনে গভীর 5 টি উপ-ডিরেক্টরি রয়েছে তবে আমার এখনও এটি বানান করতে হবে ll

এটি এখানে @ ইয়্যারিনের মন্তব্য থেকে এসেছে: https://stackoverflow.com/a/5250314/1696153

এগুলি দরকারী বিষয়গুলি ছিল:

আমিও চেষ্টা করেছি

*
*/*
**/**

এবং **/wp-content/themes/**

অথবা /wp-content/themes/**/*

এর কোনওটিই আমার পক্ষে কাজ করেনি। প্রচুর বিচার ও ত্রুটি!


1
দ্রষ্টব্য: মনে রাখবেন যে অর্ডারটি একটি .gitignore ফাইলের ক্ষেত্রেও গুরুত্বপূর্ণ, তাই আপনার !বিধিগুলি নীচে রেখেছেন তা নিশ্চিত করুন ।
স্টারবিয়াম্রেনবোলাব


8

সবচেয়ে সহজ এবং সম্ভবত সর্বোত্তম উপায় হ'ল ফাইলগুলি ম্যানুয়ালি যুক্ত করার চেষ্টা করা (সাধারণত এটি .gitignoreস্টাইলের নিয়মের চেয়ে বেশি অগ্রাধিকার নেয় ):

git add /path/to/module

এমনকি আপনি চাইতে পারেন -N অভিপ্রায় যোগ করার জন্য পতাকা, আপনি সুপারিশ করতে হবে তাদের যোগ, কিন্তু না অবিলম্বে। আমি প্রায়শই নতুন ফাইলগুলির জন্য এটি করি আমি এখনও মঞ্চায়নের জন্য প্রস্তুত নই।


এটি অনুলিপি কিউএ সহজে কী হতে পারে তার উপরে পোস্ট করা একটি উত্তরের একটি অনুলিপি। আমি এখানে বর্ধিত দৃশ্যমানতার জন্য এটি পুনরায় পোস্ট করছি g গিটিগনোর বিধি সম্পর্কে গোলমাল না করা আমার পক্ষে সহজ।


2
এই উত্তরের জন্য ধন্যবাদ। আমার -gitignore তে যেমন আছে তেমনটিই আমাকে যুক্ত করতে হয়েছিল: git add -f path / to / file
jasonflaherty

6

সুতরাং, যেহেতু অনেক প্রোগ্রামার নোড ব্যবহার করে। এই প্রশ্নটির সাথে মিলিত ব্যবহারের ক্ষেত্রে node_modulesএকটি মডিউল বাদ দেওয়া উচিত নয় module-a:

!node_modules/

node_modules/*
!node_modules/module-a/

2
গিট সংস্করণে কাজ করে না 2.10.2.windows.1
সেবাস্তিয়ান

1
গিট সংস্করণের জন্য ২.১০.২ এই উত্তরটি
নলেক্সন

👌 দুর্দান্ত 👋 👋।
আব্দেন্নুর টুমি

6

একটি অতিরিক্ত উত্তর যুক্ত করুন:

!/.vs/              <== include this folder to source control, folder only, nothing else
/.vs/*              <== but ignore all files and sub-folder inside this folder
!/.vs/ProjectSettings.json <== but include this file to source control
!/.vs/config/       <== then include this folder to source control, folder only, nothing else
!/.vs/config/*      <== then include all files inside the folder

এখানে ফলাফল:

এখানে চিত্র বর্ণনা লিখুন


2
ভিজ্যুয়ালগুলি সাহায্য করেছিল বলে এটি আমার পক্ষে সবচেয়ে দরকারী উত্তর। ধন্যবাদ!
জোয়েল মারফি

4

বিশেষত পুরানো গিট সংস্করণগুলির জন্য, বেশিরভাগ পরামর্শই সেভাবে কার্যকর হয় না। যদি এটি হয় তবে আমি যে ডিরেক্টরিতে অন্য সেটিংস নির্বিশেষে বিষয়বস্তু অন্তর্ভুক্ত করাতে চাই সেখানে ডিরেক্টরিতে একটি পৃথক .gitignore রেখেছি এবং যা প্রয়োজন তা সেখানে অনুমতি দিতে চাই।

উদাহরণস্বরূপ: /.gitignore

# ignore all .dll files
*.dll

/dependency_files/.gitignore

# include everything
!*

সুতরাং / depend depend_files এর সমস্ত কিছু (এমনকি। Dll ফাইলগুলি) কেবল জরিমানা অন্তর্ভুক্ত করা হয়েছে।


4

আমি এখানে একটি অনুরূপ কেস পেয়েছি, যেখানে ডিফল্টরূপে .gitignoreলারভেলে সমস্ত গ্রহাণু ব্যবহার করে উপেক্ষা করে, পরে পাবলিক ডিরেক্টরিকে ওভাররাইড করে।

*
!public
!.gitignore

আপনি যদি ওপেন দৃশ্যে চলে যান তবে এটি যথেষ্ট নয়।

আপনি একটি নির্দিষ্ট সাবফোল্ডার কমিট করতে চান public, যেমন আপনার হয়ে বলতে public/productsডিরেক্টরি আপনাকে অন্তর্ভুক্ত করা ফাইল এক subfolder গভীর যেমন হয় অন্তর্ভুক্ত করতে চান public/products/a/b.jpgতারা সঠিকভাবে সনাক্ত করা অভ্যস্ত, এমনকি যদি আপনি বিশেষভাবে তাদের যোগ ভালো !/public/products, !public/products/*ইত্যাদি ..

সমাধানটি হ'ল এটি নিশ্চিত করা যে আপনি প্রতিটি পাথ স্তরের জন্য এগুলি সমস্তকে ওভাররাইড করার জন্য এন্ট্রি যুক্ত করেছেন।

*
!.gitignore
!public/
!public/*/
!public/products/
!public/products/*
!public/products/*/
!public/products/*/
!public/products/*/*

3

আপনি যা চান ঠিক তা পেতে ডিরেক্টরি কাঠামোকে হাঁটানোর আরও একটি উদাহরণ। দ্রষ্টব্য: আমি বাদ দিইনি Library/তবেLibrary/**/*

# .gitignore file
Library/**/*
!Library/Application Support/
!Library/Application Support/Sublime Text 3/
!Library/Application Support/Sublime Text 3/Packages/
!Library/Application Support/Sublime Text 3/Packages/User/
!Library/Application Support/Sublime Text 3/Packages/User/*macro
!Library/Application Support/Sublime Text 3/Packages/User/*snippet
!Library/Application Support/Sublime Text 3/Packages/User/*settings
!Library/Application Support/Sublime Text 3/Packages/User/*keymap
!Library/Application Support/Sublime Text 3/Packages/User/*theme
!Library/Application Support/Sublime Text 3/Packages/User/**/
!Library/Application Support/Sublime Text 3/Packages/User/**/*macro
!Library/Application Support/Sublime Text 3/Packages/User/**/*snippet
!Library/Application Support/Sublime Text 3/Packages/User/**/*settings
!Library/Application Support/Sublime Text 3/Packages/User/**/*keymap
!Library/Application Support/Sublime Text 3/Packages/User/**/*theme

> git add Library

> git status

On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   Library/Application Support/Sublime Text 3/Packages/User/Default (OSX).sublime-keymap
    new file:   Library/Application Support/Sublime Text 3/Packages/User/ElixirSublime.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/Preferences.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/RESTer.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/SublimeLinter/Monokai (SL).tmTheme
    new file:   Library/Application Support/Sublime Text 3/Packages/User/TextPastryHistory.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/ZenTabs.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/adrian-comment.sublime-macro
    new file:   Library/Application Support/Sublime Text 3/Packages/User/json-pretty-generate.sublime-snippet
    new file:   Library/Application Support/Sublime Text 3/Packages/User/raise-exception.sublime-snippet
    new file:   Library/Application Support/Sublime Text 3/Packages/User/trailing_spaces.sublime-settings

ঠিক আমিও কী করতে চাইছিলাম ;-)
কিটজে

3

ওয়ার্ডপ্রেসে, এটি আমাকে সহায়তা করেছে:

wp-admin/
wp-includes/
/wp-content/*
!wp-content/plugins/
/wp-content/plugins/*
!/wp-content/plugins/plugin-name/
!/wp-content/plugins/plugin-name/*.*
!/wp-content/plugins/plugin-name/**

3

গিটিগনোর - উপেক্ষা করার জন্য ইচ্ছাকৃত চিহ্নযুক্ত ফাইলগুলি নির্দিষ্ট করে।

নির্দিষ্ট ডিরেক্টরি foo / বার ব্যতীত সমস্ত কিছু বাদ দেওয়ার উদাহরণ ( / * নোট করুন - স্ল্যাশ ব্যতীত, ওয়াইল্ডকার্ড foo / বারের মধ্যে সমস্ত কিছু বাদ দেবে ):

$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar

ওয়ার্ডপ্রেসের জন্য আরেকটি উদাহরণ :

!/wp-content
wp-content/*
!/wp-content/plugins
wp-content/plugins/*
!wp-content/plugins/my-awesome-plugin

এখানে আরও তথ্য: https://git-scm.com/docs/gitignore


2

আমি প্রায়শই এই কাজটি সিএলআইতে ব্যবহার করি যেখানে আমার কনফিগার করার পরিবর্তে .gitignoreআমি একটি পৃথক .includeফাইল তৈরি করি যেখানে আমি (সাব) ডিরেক্টরিগুলি সংজ্ঞায়িত করি যেখানে ডিরেক্টরিগুলি সত্ত্বেও অন্তর্ভুক্ত করতে চাই বা প্রত্যক্ষভাবে উপেক্ষা করা উচিত .gitignore

সুতরাং, আমি অতিরিক্ত ব্যবহার

git add `cat .include`

মঞ্চস্থ করার সময়, প্রতিশ্রুতিবদ্ধ আগে।

ওপিকে, আমি .includeএই লাইনগুলির একটি ব্যবহার করার পরামর্শ দিচ্ছি :

<parent_folder_path>/application/language/gr/*

দ্রষ্টব্য: $ হোম (বা অন্য কোনও নির্দিষ্ট ডিরেক্টরি) উল্লেখ catকরার .includeজন্য ব্যবহারের মাধ্যমে (এর মধ্যে ) উপকরণের ব্যবহারের অনুমতি দেয় না । এটি কারণ কারণ উপরের কমান্ডটি ব্যবহার homedir/app1/* করার সময় লাইনটি git addপ্রদর্শিত হয় git add 'homedir/app1/*'এবং একক উদ্ধৃতিতে অক্ষরগুলি আবদ্ধ করা হয় ('') উদ্ধৃতিগুলির মধ্যে প্রতিটি অক্ষরের আক্ষরিক মান সংরক্ষণ করে, সুতরাং এ্যালিয়াস (যেমন হোমডির হিসাবে ) কাজ করা থেকে বিরত থাকে (দেখুন বাশ সিঙ্গল উদ্ধৃতি )।

.includeআমি এখানে আমার রেপোতে যে ফাইল ব্যবহার করি তার একটি উদাহরণ এখানে

/home/abhirup/token.txt
/home/abhirup/.include
/home/abhirup/.vim/*
/home/abhirup/.viminfo
/home/abhirup/.bashrc
/home/abhirup/.vimrc
/home/abhirup/.condarc

1

আমি jquery উত্পাদন js ফাইলগুলি ট্র্যাক করতে চেয়েছিলাম এবং এটি কাজ করেছে:

node_modules/*
!node_modules/jquery
node_modules/jquery/*
!node_modules/jquery/dist/*

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