.Gitignore কয়েকটি ফাইল বাদে সবকিছু উপেক্ষা করুন


1696

আমি বুঝতে পারি যে .gitignore ফাইল গিটের সংস্করণ নিয়ন্ত্রণ থেকে নির্দিষ্ট করা ফাইলগুলিকে ক্লক করে। আমার একটি প্রকল্প (ল্যাটেক্স) রয়েছে যা প্রচুর পরিমাণে অতিরিক্ত ফাইল (.auth, .dvi, .pdf, লগ, ইত্যাদি) চলার সাথে সাথে তৈরি করে তবে আমি সেগুলি ট্র্যাক করা চাই না।

আমি সচেতন যে আমি এটি তৈরি করতে পারতাম (সম্ভবত হওয়া উচিত) যাতে এই সমস্ত ফাইলগুলি প্রকল্পের একটি পৃথক সাবফোল্ডারটিতে রাখা হয়, যেহেতু আমি তখন কেবল ফোল্ডারটি উপেক্ষা করতে পারি।

তবে, প্রকল্পের গাছের গোড়ায় আউটপুট ফাইলগুলি রাখার এবং গিটের সাহায্যে আমি যে ফাইলগুলি ট্র্যাক করছি সেগুলি বাদ দিয়ে সমস্ত কিছু উপেক্ষা করার জন্য .gitignore ব্যবহার করার কোনও সম্ভাব্য উপায় আছে কি? কিছুটা এইরকম

# Ignore everything
*

# But not these files...
script.pl
template.latex
# etc...

12
স্ট্যাকওভারফ্লো . com / q / 9162919 / 321973 এর সদৃশ (আমি জানি এটি আরও নতুন, তবে উত্তরটি আরও সঠিক)। প্রকৃতপক্ষে এই উত্তরটি সম্ভবত সেরা
টোবিয়াস কেইনজলার

উত্তর:


2435

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

# Ignore everything
*

# But not these files...
!.gitignore
!script.pl
!template.latex
# etc...

# ...even if they are in subdirectories
!*/

# if the files to be tracked are in subdirectories
!*/a/b/file1.txt
!*/a/b/c/*

14
দেখে মনে হচ্ছে এটি সাব-ফোল্ডারগুলিকেও 'উপেক্ষা করে', যেমন root dir ব্যতীত অন্য কোনও কিছুতে 'স্ক্রিপ্ট.পিএল' নামের কোনও ফাইল আর পাওয়া যাবে না। আমি এখন এটি ব্যবহার করছি (* .পিএল দিয়ে) এবং সমস্ত * .পিএল ফাইলগুলি উপেক্ষা করা হচ্ছে যদিও .gitignore ফাইলের নীচে সাব-ডাইরেক্টরিগুলিতে রয়েছে
পান্ডাওড

38
@ পান্ডাওড এই সমস্যাটি এখানে উপস্থিত করা হয়েছে ( স্ট্যাকওভারফ্লো ডটকম )। এটি ডিরেক্টরি সহ সমস্ত কিছু মেলে এমন প্রথম প্রকাশের কারণে ঘটেছিল, যা আপনি কখনই অস্বীকার করেন না। স্থির করতে, যোগ করুন (! * /), যা বর্তমান ডিরেক্টরিটিতে যে কোনও উপ-ডিরেক্টরি (পুনরাবৃত্তভাবে) এর সাথে মেলে। এটি পিতামাতার জবাবটিকে সহায়তা করবে না, যা নির্দিষ্ট ফাইলগুলি শ্বেত তালিকাভুক্ত করছে (যদি তারা সাব-ডিরেক্টরিতে থাকে তবে আপনি সম্ভবত ম্যানুয়ালি পুরো পথটি নির্দিষ্ট করতে বা ডিরেক্টরি-নির্দিষ্ট .gitignore ফাইলগুলি ব্যবহার করতে চান)।
simont

40
আমি এই কাজ করতে পারে না। আমি একটি ফোল্ডার (উদাঃ wp/) উপেক্ষা করছি তবে আমি সেই ফোল্ডারে (যেমন wp/path/to/some/location/*) গভীর কিছু ফাইল উপেক্ষা করতে চাই না । আমি এটির কাজটি করতে পারার একমাত্র উপায় ছিলgit add -f wp/path/to/some/location/*
trusktr

13
@trusktr সিমন্টের !*/ব্যতিক্রমটি ব্যবহার করুন
টোবিয়াস কেইনজলার

7
গীজ যা সর্বশেষ নিয়ম: কাজ !*/করার জন্য একটি .gitignoreফাইল র‌্যাংগল করার আমার নিরর্থক প্রয়াসে সমস্ত পার্থক্য করে । আপনাকে অনেক ধন্যবাদ.
racl101

627

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

.gitignore

pippo/*
!pippo/pluto
pippo/pluto/*
!pippo/pluto/paperino.xml

58
চমৎকার উত্তর, কিন্তু এটা এর মূল্য পরে এই জুড়ে আসছে কেউ জন্য লক্ষ fooএবং foo/*হয় না একই। এটি কাজ করার জন্য, আপনাকে বেস ফোল্ডারটির জন্য ব্যবহার করতে হবেfoo/*
thislooksfun

20
@ মায়াঙ্ক পিপ্পো হলেন ইটালিয়ান ভাষায় বোকা এবং পেপারিনো হলেন ডোনাল্ড ডাক এবং প্লুটো হ'ল ইংরেজিতে in তারা দিনগুলিতে প্রোগ্রামিং স্যাম্পলগুলির জন্য পরিবর্তনশীল নামেরগুলির একটি খুব সাধারণ ট্রিপলেট ছিল। এগুলি আবার পড়ে ভাল লাগল .. :)
ঝিদেলো

@ থিসলুকসফুন যা বলে তা গুরুত্বপূর্ণ যদি আপনি "ফাইল এক্স ব্যতীত কোনও ফোল্ডার বাদ দিতে চান"।
সিজন টেকনোলজি 25'17

8
আমার জন্য কাজ করে না: নোড_মডিউল / *! নোড_মডিউল / বুটস্ট্র্যাপ
সুপারউবারডুপার

1
@ সিম্পল_হুমান এটি সত্য হবে যদি তিনি ভাণ্ডার মূলের সমস্ত কিছু উপেক্ষা করছেন বা উল্লিখিত ডিরেক্টরিগুলির মধ্যে তার যত্ন নেওয়ার জন্য .gitignore ফাইল থাকলে।
xZero

244

আপনি /*পরিবর্তে *বা */বেশিরভাগ ক্ষেত্রেই ব্যবহার করতে চান

ব্যবহার *বৈধ, তবে এটি পুনরাবৃত্তির সাথে কাজ করে। এটি তখন থেকে ডিরেক্টরিগুলির দিকে তাকাবে না। লোকেরা !*/আবার ডিরেক্টরিতে হোয়াইটলিস্টে ব্যবহারের পরামর্শ দেয় তবে সর্বোচ্চ স্তরের ফোল্ডারটি দিয়ে কালো তালিকাভুক্ত করা আসলে এটি আরও ভাল/*

# Blacklist files/folders in same directory as the .gitignore file
/*

# Whitelist some files
!.gitignore
!README.md

# Ignore all files named .DS_Store or ending with .log
**/.DS_Store
**.log

# Whitelist folder/a/b1/ and folder/a/b2/
# trailing "/" is optional for folders, may match file though.
# "/" is NOT optional when followed by a *
!folder/
folder/*
!folder/a/
folder/a/*
!folder/a/b1/
!folder/a/b2/
!folder/a/file.txt

# Adding to the above, this also works...
!/folder/a/deeply
/folder/a/deeply/*
!/folder/a/deeply/nested
/folder/a/deeply/nested/*
!/folder/a/deeply/nested/subfolder

উপরের কোড ছাড়া সব ফাইল উপেক্ষা করা হবে .gitignore, README.md, folder/a/file.txt, folder/a/b1/এবং folder/a/b2/সেই গত দুই ফোল্ডারে উপস্থিত রয়েছে সবকিছু। ( .DS_Storeএবং *.logফাইলগুলি সেই ফোল্ডারে উপেক্ষা করা হবে))

অবশ্যই আমি উদাহরণস্বরূপ !/folderবা !/.gitignoreখুব করতে পারে ।

আরও তথ্য: http://git-scm.com/docs/gitignore


3
অনেক চালাক, ধন্যবাদ। আইএমও, অন্তর্ভুক্তির বিধিগুলির ন্যূনতম সংখ্যার সাথে ওয়ার্ডপ্রেস সাইটগুলির জন্য এটি সম্পর্কে সবচেয়ে ভাল উপায়। এছাড়াও, আপনার এক্সপ্রেস অনুমতি ব্যতীত কোনও নতুন প্লাগইন, থিম বা ডাব্লুপি আপডেটগুলি সরানো বা যুক্ত করা হয় না। গিটহাব ডেস্কটপ ব্যবহার করার সময় আমি দেখতে পাই যে .DS_Storeফাইলগুলি এড়ানো হবে না, তবে কমান্ড লাইনের মাধ্যমে এটি কোনও সমস্যা নয়। এটি পেতে আমাকে **/.DS_Storeঅন্যান্য সমস্ত নিয়মের নীচে সরে যেতে হয়েছিল ।
জিবরান

7
আমার অভ্যন্তরীণ সিনট্যাক্স হাইলাইটারটি আপনার পোস্টের শিরোনামটিতে এক অদ্ভুত প্রতিক্রিয়া করছে।
itadok

3
এবং Gracias! আপনি কোনও ফোল্ডারে কোনও ফাইলকে শ্বেত তালিকাতে রাখতে পারেন ..! /some/folder/file.txt
পডটেক.ইও

আশ্চর্যজনক, * এর পরিবর্তে / * ব্যবহার করে আমার সমস্ত সমস্যাগুলি ঠিক করা যখন উপরের উত্তরগুলি না দেয়। আমার এখন একটাই প্রশ্ন! / ফোল্ডার এবং! / ফোল্ডার / * এর মধ্যে পার্থক্য কী? আমি * ছাড়াই! / ফোল্ডারটি যদি ব্যবহার করি তবে এটি এখনও যতদূর বলতে পারি ফোল্ডারের সমস্ত ফাইলে পরিবর্তন আনবে।
dallin

1
@ ডালিনে কোনও পার্থক্য নেই। একটি ফোল্ডার শ্বেত তালিকাভুক্ত করে এবং অন্যটি সেই ফোল্ডারের বাচ্চাদের হোয়াইটলিস্ট করে, যা একই কাজ করে। একমাত্র সমস্যা একটি ফোল্ডার বা ফাইল এর অভিভাবক আগেই পরিচ্ছন্ন তালিকায় যুক্ত করা যেতে পারে পরিচ্ছন্ন তালিকায় যুক্ত করা হয়েছে, তাই আপনি ব্যবহার করতে পারবেন না /*তখন !/nested/folder/*(অথবা সমতুল্য !/nested/folderকরছেন ছাড়া) !/nested/বা !/nestedপ্রথম! (এবং সম্ভবত /nested/*এর মধ্যে)। মনে রাখার কৌশলটি হ'ল যদি আপনি গভীরভাবে নেস্টেড সাবফোল্ডারটিকে হোয়াইটলিস্ট করে থাকেন তবে আপনার প্রতিটি সাবোল্ডারটিতে শিশুদের সমস্ত উপায়ে কালো করা দরকার এবং সেই ব্ল্যাকলিস্টগুলি "স্ল্যাশ স্টার" দিয়ে শেষ হবে ...
রায়ান টেইলর

75

আরও কিছু নির্দিষ্ট:

উদাহরণ: এতে সবকিছু উপেক্ষা করুন webroot/cache- তবে রাখুন webroot/cache/.htaccess

cacheফোল্ডারের পরে স্ল্যাশ (/) লক্ষ করুন :

ব্যর্থ

webroot/cache*
!webroot/cache/.htaccess

WORKS

webroot/cache/*
!webroot/cache/.htaccess

আপনি যদি ভিএস কোড ব্যবহার করে থাকেন তবে .gitkeep সহ কোনও ফোল্ডারে এটি প্রয়োগ করার পরে ফাইলের বর্ণানুবিভ্রান্ত না হওয়ার বিষয়ে সতর্ক হন কারণ ফোল্ডারের নাম সবুজ হয়ে যাবে তবে .Gitkeep ফাইলটি অন্য সমস্ত উপেক্ষা করা ফাইলের মতো ধূসর হয়ে যাবে; .গিটকিপটি এটিকে উপেক্ষা করার মতো দেখায় তবে ডান পাশের একটি 'ইউ' রয়েছে তা বোঝা গেছে যে এটি সনাক্ত করা হয়েছে
ওজজি দ্য জায়ান্ট


28

ডিরেক্টরিতে কিছু ফাইল উপেক্ষা করতে, আপনাকে সঠিক ক্রমে এটি করতে হবে :

উদাহরণস্বরূপ, index.php এবং ফোল্ডার "কনফিগারেশন" বাদে ফোল্ডার "অ্যাপ্লিকেশন" এর সমস্ত কিছু উপেক্ষা করুন যাতে অর্ডারটিতে মনোযোগ দিন

আপনি প্রথমে চান চান আপনি তা প্রত্যাখ্যান করতে হবে।

ব্যর্থ

application/*

!application/config/*

!application/index.php

WORKS

!application/config/*

!application/index.php

application/*


38
ভুল। আপনি "সমস্ত কিছু উপেক্ষা করুন" এর পরে অবজ্ঞা করুন।
কার্লোস

2
git statusআপনার পরিবর্তনগুলি .gitignoreপ্রত্যাশা অনুযায়ী কাজ করে কিনা তা পরীক্ষা করে বোকা বোধ করবেন না
ফিলিপ রথ

10
যদি git statusএটি আপনাকে কী দেখছে এবং কী উপেক্ষা করা হচ্ছে তা যদি না বলে চলেছে তবে আপনি কীভাবে জানতে পারবেন যে এটি কাজ করছে?
ক্রিস

1
@ ক্রিস প্রথমে গিট ক্যাশে সাফ করুন। প্রথমে একটি "গিট আরএম - ক্যাশেড *" করুন তারপরে আপনি "গিট অ্যাড - সমস্ত" করতে পারেন তারপরে একটি "গিট স্ট্যাটাস" আপনাকে সমস্ত নতুন গিটিগনোর পরিবর্তন দেখাবে।
মার্ক ম্যাককর্কল

20

আপনি ব্যবহার করতে পারেন git config status.showUntrackedFiles noএবং সমস্ত চিহ্নবিহীন ফাইলগুলি আপনার কাছ থেকে লুকানো থাকবে। দেখুন man git-configবিস্তারিত জানার জন্য।


আপনি যদি অনেকের মধ্যে কেবল কয়েকটি ফাইলই কমিট করতে চান তবে এটি দুর্দান্ত!
জোশ এম।

16

.Gitignore থেকে ফোল্ডারটি বাদ দিতে, নিম্নলিখিতটি করা যেতে পারে।

!app/

app/*
!app/bower_components/

app/bower_components/*
!app/bower_components/highcharts/

এটি bower_componentsবাদে ভিতরে সমস্ত ফাইল / সাবফোল্ডার উপেক্ষা করবে /highcharts


14

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

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

# 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 and files if you wish:
!wordpress/somefile.jpg
!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/**/*

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


2
এটি একমাত্র পদ্ধতি যা নির্দিষ্ট ফাইল এক্সটেনশানগুলিকে একচেটিয়াভাবে অন্তর্ভুক্ত করতে কাজ করে। আরও ভাল, এটি দুর্দান্ত ASCII শিল্প তৈরি করে: gist.github.com/Wolfgange3311999/91c671f5e4d3c56cf5a1
ম্যাথু


9

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

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

কাজ করা।

# Ignore the 'Pro' folder, except for the '3rdparty' subfolder 
/Pro/*
!Pro/3rdparty/

# Ignore the '3rdparty' folder, except for the 'domain' subfolder
/Pro/3rdparty/*
!Pro/3rdparty/domain/

# Ignore the 'domain' folder, except for the 'modulename' subfolder
Pro/3rdparty/domain/*
!Pro/3rdparty/domain/modulename/

ফলস্বরূপ আমি আমার গিট ক্লায়েন্টে দেখতে পাচ্ছি যে প্রো / থার্ড পার্টির / ডোমেন / মডিউলনাম / ফোল্ডারের মধ্যে কেবলমাত্র দুটি ফাইলই পরবর্তী প্রতিশ্রুতিবদ্ধ হওয়ার জন্য মঞ্চস্থ হয়েছে এবং আমি ঠিক এটিই সন্ধান করছিলাম।

এবং যদি আপনাকে একই ফোল্ডারের বেশ কয়েকটি সাবফোল্ডার শ্বেত তালিকাবদ্ধ করতে হয় তবে বিবৃতি বাদ দেওয়ার নীচে বিস্মৃত চিহ্ন চিহ্নগুলি লাইনগুলি এইভাবে গ্রুপ করুন:

# Ignore the 'Pro' folder, except for the '3rdparty' subfolder 
/Pro/*
!Pro/3rdparty/

# Ignore the '3rdparty' folder, except for the 'domain' & 'hosting' subfolders
/Pro/3rdparty/*
!Pro/3rdparty/domain/
!Pro/3rdparty/hosting/

# Ignore the 'domain' folder, except for the 'modulename' subfolder
Pro/3rdparty/domain/*
!Pro/3rdparty/domain/modulename/

# Ignore the 'hosting' folder, except for the 'modulename' subfolder
Pro/3rdparty/hosting/*
!Pro/3rdparty/hosting/modulename/

অন্যথায় এটি প্রত্যাশার মতো কাজ করবে না।


অবশেষে একটি উত্তর যে কাজ করেছে। আমি ভাবছি কখন কখন বুঝতে পারব। Gitignore আসলে কীভাবে কাজ করে
ডেভিড

8

এটাই আমার পক্ষে কাজ করেছে, আমি রেপোতে কেবল একটি কর্ডোভা প্লাগইন প্রতিশ্রুতিবদ্ধ করতে চেয়েছিলাম:

...
plugins/*
!plugins/cordova-plugin-app-customization

8

আমি জানি আমি পার্টির জন্য দেরি করেছি, তবে আমার উত্তর এখানে's

@ জোয়াকিম যেমন বলেছেন, কোনও ফাইল উপেক্ষা করার জন্য আপনি নীচের মতো কিছু ব্যবহার করতে পারেন।

# Ignore everything
*

# But not these files...
!.gitignore
!someFile.txt

তবে ফাইলটি যদি নেস্টেড ডিরেক্টরিতে থাকে তবে নিয়ম ম্যানুয়ালি লেখা কিছুটা কঠিন।

উদাহরণস্বরূপ, একটি সব ফাইল এড়িয়ে যেতে আমরা চাই gitপ্রকল্প, কিন্তু a.txtযা অবস্থিত aDir/anotherDir/someOtherDir/aDir/bDir/cDir। তারপরে, আমাদের .gitignoreএমন কিছু হবে

# Skip all files
*

# But not `aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt`
!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt

উপরের প্রদত্ত .gitignoreফাইলটি সমস্ত ডায়ার এবং ফাইলগুলি বাদ দিবে!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt

আপনি যেমন লক্ষ করেছেন, এই নিয়মগুলি সংজ্ঞায়িত করা শক্ত।

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

ব্যবহারের উদাহরণ

java -jar git-do-not-ignore.jar "aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt"

আউটপুট

!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt

এখানে একটি সাধারণ ওয়েব সংস্করণও পাওয়া যায়

ধন্যবাদ.


7

বোর থেকে আমার কাছে জিকিউরি এবং কৌনিক রয়েছে। বোর এগুলি ইনস্টল করে

/public_html/bower_components/jquery/dist/bunch-of-jquery-files
/public_html/bower_components/jquery/src/bunch-of-jquery-source-files
/public_html/bower_components/angular/angular-files

সংক্ষিপ্ত jquery distডিরেক্টরি ভিতরে এবং কৌণিক angularডিরেক্টরি ভিতরে হয় । গিথুব থেকে কমিট করার জন্য আমার কেবলমাত্র ন্যূনতম ফাইলগুলির প্রয়োজন ছিল। .Gitignore এর সাথে কিছুটা টেম্পারিং এবং এটিই আমি জঞ্জাল করতে পেরেছি ...

/public_html/bower_components/jquery/*
!public_html/bower_components/jquery/dist
/public_html/bower_components/jquery/dist/*
!public_html/bower_components/jquery/dist/jquery.min.js
/public_html/bower_components/angular/*
!public_html/bower_components/angular/angular.min.js

আশা করি কেউ এটি দরকারী খুঁজে পেতে পারে।


7

এটি আমি এটি করেছিলাম:

# Ignore everything
*

# Whitelist anything that's a directory
!*/

# Whitelist some files
!.gitignore

# Whitelist this folder and everything inside of it
!wordpress/wp-content/themes/my-theme/**

# Ignore this folder inside that folder
wordpress/wp-content/themes/my-theme/node_modules

# Ignore this file recursively
**/.DS_Store

gig status -uচিহ্নবিহীন ডিরেক্টরিগুলিতে স্বতন্ত্র ফাইলগুলি পুনরাবৃত্তভাবে দেখার জন্য ব্যবহার করুন - git statusআপনি কেবল ফোল্ডার দেখতে পাবেন যা তাদের ভিতরে থাকা সমস্ত কিছু ট্র্যাক করে ভেবে আপনাকে বোকা বানাতে পারে with


5

সহজ সমাধান যদি আপনার কয়েকটি ফাইল এবং কয়েকটি রুট ফোল্ডার বাদে সবকিছু উপেক্ষা করতে হয় :

/*
!.gitignore
!showMe.txt
!my_visible_dir

যাদুটিতে রয়েছে /*(উপরে বর্ণিত হিসাবে) এটি (মূল) ফোল্ডারের সমস্ত কিছু উপেক্ষা করে তবে পুনরাবৃত্তির সাথে নয়।


4

একক ফাইলগুলির অবহেলা নিয়ে আমারও কিছু সমস্যা ছিল। আমি তাদের প্রতিশ্রুতিবদ্ধ করতে সক্ষম হয়েছি, তবে আমার আইডিই (ইন্টেলিজ) সর্বদা উপেক্ষা করা ফাইলগুলির বিষয়ে অভিযোগ করেছিল যা ট্র্যাক করা হয়।

git ls-files -i --exclude-from .gitignore

দুটি ফাইল প্রদর্শিত হয়েছে, যা আমি এইভাবে বাদ দিয়েছি:

public/
!public/typo3conf/LocalConfiguration.php
!public/typo3conf/PackageStates.php

শেষ পর্যন্ত, এটি আমার পক্ষে কাজ করেছে:

public/*
!public/typo3conf/
public/typo3conf/*
!public/typo3conf/LocalConfiguration.php
!public/typo3conf/PackageStates.php

কীটি হ'ল প্রথমে ফোল্ডারটির অবহেলা typo3conf/

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

ফোল্ডার !public/typo3conf/এবং ফোল্ডার সামগ্রীগুলি public/typo3conf/*.gitignore জন্য দুটি পৃথক জিনিস।

দুর্দান্ত থ্রেড! এই সমস্যাটি আমাকে কিছুক্ষণ বিরক্ত করেছিল;)


3

আমার পক্ষে এতদিন কিছুই কাজ করেনি কারণ আমি লিব থেকে একটি জার যোগ করার চেষ্টা করছিলাম।

এটি কার্যকর হয়নি:

build/*
!build/libs/*
!build/libs/
!build/libs/myjarfile.jar 

এটি কাজ করেছে:

build/*
!build/libs

3

আমি এই কাজ পেয়েছিলাম

# Vendor
/vendor/braintree/braintree_php/*
!/vendor/braintree/braintree_php/lib

2

ওপি হিসাবে অনুরূপ ইস্যু থাকলেও সেরা 10 আপভোটেড উত্তরগুলির মধ্যে কোনওটিই বাস্তবে কাজ করে না
অবশেষে আমি নিম্নলিখিতগুলি খুঁজে পেয়েছি

ভুল বাক্য গঠন:

*
!bin/script.sh

সঠিক বাক্য গঠন:

*
!bin
!bin/script.sh

গিটিগনোর ম্যান পৃষ্ঠা থেকে ব্যাখ্যা :

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

বর্ধিত উদাহরণ:

$ গাছ।

.
├── .gitignore
└── bin
    ├── ignore.txt
    └── sub
        └── folder
            └── path
                ├── other.sh
                └── script.sh

$ বিড়াল .gitignore

*
!.gitignore
!bin
!bin/sub
!bin/sub/folder
!bin/sub/folder/path
!bin/sub/folder/path/script.sh

it গিটের স্থিতি --আন্ট্র্যাকড-ফাইলগুলি --ignored

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
        bin/sub/folder/path/script.sh

Ignored files:
  (use "git add -f <file>..." to include in what will be committed)
        bin/ignore.txt
        bin/sub/folder/path/other.sh

nothing added to commit but untracked files present (use "git add" to track)

1

সারকথা

# Ignore everything
*

# But not these files...
!script.pl
!template.latex

এবং সম্ভবত অন্তর্ভুক্ত:

!.gitignore

উল্লেখ

Https://git-scm.com/docs/gitignore থেকে :

একটি !alচ্ছিক উপসর্গ " " যা প্যাটার্নটিকে উপেক্ষা করে; আগের প্যাটার্ন দ্বারা বাদ দেওয়া কোনও মিলে যাওয়া ফাইল আবার অন্তর্ভুক্ত হবে। যদি সেই ফাইলটির কোনও পিতামহিত ডিরেক্টরি বাদ দেওয়া হয় তবে কোনও ফাইল পুনরায় অন্তর্ভুক্ত করা সম্ভব নয়। কার্য সম্পাদনের কারণে গিট বাদ দেওয়া ডিরেক্টরিগুলি তালিকাভুক্ত করে না, সুতরাং এতে থাকা ফাইলগুলিতে যে কোনও প্যাটার্নের কোনও প্রভাব নেই, সেগুলি নির্ধারিত যেখানেই হোক না কেন। আক্ষরিক " " দিয়ে শুরু হওয়া নিদর্শনগুলির জন্য \প্রথম " !" এর সামনে একটি ব্যাকস্ল্যাশ (" ") রাখুন !, উদাহরণস্বরূপ, " \!important!.txt"।

...

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

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

0

আমি আমার জন্য এমন কিছু খুঁজে পেয়েছি যা অন্য কেউ উল্লেখ করেনি।

# Ignore everything
*

# But not these files...
!.gitignore
!script.pl
!template.latex
# etc...

# And if you want to include a sub-directory and all sub-directory and files under it, but not all sub-directories
!subdir/
!subdir/**/*

মূলত, এটি একটি উপ-ডিরেক্টরিটিকে অগ্রাহ্য করা থেকে অবহেলা করে বলে মনে হচ্ছে, আপনার নিজের দুটি এন্ট্রি থাকতে হবে, একটি নিজে নিজেই সাব-ডিরেক্টরিতে !subdir/এবং তার পরে অন্য একটি যা এর অধীনে সমস্ত ফাইল এবং ফোল্ডারে প্রসারিত হয়!subdir/**/*

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