.Gitignore ගොනු කිහිපයක් හැර සියල්ල නොසලකා හරින්න


1735

.Gitignore ගොනුවක් Git හි අනුවාද පාලකයෙන් නිශ්චිත ගොනු සළකුණු කරන බව මට වැටහේ. මා සතුව ව්‍යාපෘතියක් (ලාටෙක්ස්) ක්‍රියාත්මක වන විට අමතර ලිපිගොනු (.auth, .dvi, .pdf, ලොග් ආදිය) ජනනය කරයි, නමුත් ඒවා ලුහුබැඳීමට මා කැමති නැත.

ෆෝල්ඩරය නොසලකා හැරිය හැකි බැවින්, එම ලිපිගොනු සියල්ලම වෙනම උප ෆෝල්ඩරයක දමා ඇති බව මම දනිමි.

කෙසේ වෙතත්, නිමැවුම් ලිපිගොනු ව්‍යාපෘති ගසෙහි මුල තබා ගැනීමට සහ Git සමඟ මම ලුහුබඳින ලිපිගොනු හැර අන් සියල්ල නොසලකා හැරීමට .gitignore භාවිතා කිරීමට ශක්‍ය ක්‍රමයක් තිබේද? වගේ දෙයක්

# Ignore everything
*

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

12
Stackoverflow.com/q/9162919/321973 හි අනුපිටපත (එය අලුත් බව මම දනිමි, නමුත් පිළිතුර වඩාත් නිවැරදි ය). ඇත්ත වශයෙන්ම මෙම පිළිතුර හොඳම විය හැකිය
ටොබියාස් කියෙන්ස්ලර්

Answers:


2483

!රටාව නොසලකා හරින විකල්ප උපසර්ගයක් ; පෙර රටාවකින් බැහැර කරන ඕනෑම ගැලපෙන ගොනුවක් නැවත ඇතුළත් වේ. නොසලකා හරින ලද රටාවක් ගැලපෙන්නේ නම්, මෙය අඩු ප්‍රමුඛතා රටා ප්‍රභවයන් අභිබවා යනු ඇත.

# 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
මූල dir හැර වෙනත් ඕනෑම දෙයක 'script.pl' නම් ඕනෑම ගොනුවක් කෙසේ හෝ සොයාගත නොහැකි වන පරිදි මෙය උප ෆෝල්ඩර 'නොසලකා හරින' බව පෙනේ. මම දැන් මෙය භාවිතා කරමි (* .pl සමඟ) සහ .gitignore ගොනුවට පහළින් ඇති උප බහලුම්වල බොහෝ දේ තිබුණද සියලුම * .pl ගොනු නොසලකා හරිනු ලැබේ
PandaWood

39
Anda පැන්ඩාවුඩ් එම ගැටළුව මෙහි ගෙන එන ලදි (stackoverflow.com). එය සිදුවන්නේ ඔබ කිසි විටෙකත් ප්‍රතික්ෂේප නොකරන නාමාවලි ඇතුළු සියල්ලට ගැලපෙන පළමු ප්‍රකාශනය මගිනි. නිවැරදි කිරීමට, වත්මන් නාමාවලියෙහි ඇති ඕනෑම උප බහලුම්වලට (පුනරාවර්තනව) ගැලපෙන (! * /) එකතු කරන්න. නිශ්චිත ලිපිගොනු සුදු ලැයිස්තු ගත කරන මව් පිළිතුරට මෙය උදව් නොකරනු ඇත (ඒවා උප බහලුම්වල තිබේ නම්, ඔබට සම්පූර්ණ මාර්ගය අතින් නියම කිරීමට අවශ්‍ය වනු ඇත, නැතහොත් නාමාවලි විශේෂිත .ගිටිගෝර් ලිපිගොනු භාවිතා කරන්න).
simont

41
මට මෙය වැඩ කිරීමට නොහැකි විය. මම ෆෝල්ඩරයක් නොසලකා හරිමි (උදා wp/) නමුත් එම ෆෝල්ඩරයේ ගැඹුරු සමහර ගොනු නොසලකා හැරීමට මට අවශ්‍යය (උදා wp/path/to/some/location/*). මට එය වැඩට ගත හැකි එකම ක්‍රමය වූයේgit add -f wp/path/to/some/location/*
trusktr

13
ustrusktr සිමොන්ට්ගේ !*/ව්‍යතිරේකය භාවිතා කරන්න
ටොබියාස් කියෙන්ස්ලර්

7
ගීස් එම අන්තිම රීතිය: වැඩ කිරීමට ගොනුවක් !*/පොරබැදීමට මගේ නිරර්ථක උත්සාහයේ සියලු වෙනසක් කරයි .gitignore. බොහොම ස්තූතියි.
racl101

644

ඩිරෙක්ටරියක් තුළ ඇති එක් ගොනුවක් හැර සමස්ත අන්තර්ගතය නොසලකා හැරීමට ඔබට අවශ්‍ය නම්, ගොනු මාවතේ එක් එක් නාමාවලිය සඳහා නීති යුගලයක් ලිවිය හැකිය. උදා .Pippo / pluto / paperino.xml හැර පයිපෝ ෆෝල්ඩරය නොසලකා හැරීමට gitignore

.ගිටිගෝර්

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

61
විශිෂ් answer පිළිතුර, නමුත් මෙය පසුකාලීනව පැමිණෙන fooහා foo/*සමාන නොවන ඕනෑම කෙනෙකුට සඳහන් කිරීම වටී . මේ සඳහා වැඩ කිරීමට, ඔබ අවශ්ය භාවිතා කිරීමට foo/*එම පදනම ෆෝල්ඩරය සඳහා
thislooksfun

22
Ay මයාන්ක් පිපෝ ඉතාලි භාෂාවෙන් මෝඩයෙක් වන අතර පැපෙරිනෝ ඩොනල්ඩ් ඩක් වන අතර ප්ලූටෝ ඉංග්‍රීසි භාෂාවට සමාන ය. ඔවුන් අතීතයේ දී ක්‍රමලේඛන සාම්පල සඳහා විචල්‍ය නම් ත්‍රිත්වයක් විය. ඒවා නැවත කියවීම සතුටක් .. :)
ගිඩෙලෝ

ඔබට "x ගොනුව හැර ෆෝල්ඩරයක් බැහැර කිරීමට" අවශ්‍ය නම් isthislooksfun පවසන දේ වැදගත් වේ.
චෙක්නොලොජි

8
මට වැඩ කරන්නේ නැත: node_modules / *! node_modules / bootstrap
SuperUberDuper

1
imsimple_human ඔහු නිධිය මූලයේ ඇති සියල්ල නොසලකා හැරියේ නම් හෝ ඔහු සඳහන් කළ නාමාවලි තුළ සැලකිලිමත් වීමට .gitignore ගොනුවක් තිබේ නම් එය සත්‍ය වේ.
xZero

249

ඔබට බොහෝ විට /*වෙනුවට *හෝ භාවිතා කිරීමට අවශ්‍යය*/

භාවිතා *කිරීම වලංගු වේ, නමුත් එය පුනරාවර්තනය වේ. එතැන් සිට එය නාමාවලි සොයා බලන්නේ නැත. !*/නාමාවලි නැවත සුදු ලැයිස්තු ගත කිරීමට මිනිසුන් නිර්දේශ කරයි , නමුත් ඇත්ත වශයෙන්ම ඉහළම මට්ටමේ ෆෝල්ඩරය සමඟ අසාදු ලේඛනය කිරීම වඩා හොඳය/*

# 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
ඉතා දක්ෂයි, ස්තූතියි. IMO, වර්ඩ්ප්‍රෙස් අඩවි සඳහා අවම වශයෙන් ඇතුළත් කිරීමේ නීති සංඛ්‍යාවක් ඇති හොඳම ක්‍රමය මෙයයි. තවද, ඔබගේ සී express ්‍රගාමී අවසරයකින් තොරව නව ප්ලගීන, තේමාවන් හෝ WP යාවත්කාලීන කිරීම් ඉවත් කිරීම හෝ එකතු කිරීම සිදු නොකෙරේ. GitHub ඩෙස්ක්ටොප් එක භාවිතා කරන විට .DS_Storeලිපිගොනු නොසලකා හරින බව මට පෙනේ , නමුත් විධාන රේඛාව හරහා මෙය ගැටළුවක් නොවේ. මෙය මඟහරවා ගැනීම සඳහා මට **/.DS_Storeපහත සඳහන් අනෙකුත් සියලුම නීති රීති ගෙන යා යුතු විය .
ජිබ්රාන්

7
මගේ අභ්‍යන්තර සින්ටැක්ස් හයිලයිටරය ඔබගේ ලිපියේ මාතෘකාවට අමුතු ප්‍රතිචාරයක් දක්වයි.
itsadok

3
ග්‍රේසියස්! ඔබට ෆෝල්ඩරයක ගොනුවක් සුදු ලැයිස්තු ගත කළ හැකිය ..! /some/folder/file.txt
PodTech.io

නියමයි, ඉහත පිළිතුරු නොමැති විට මගේ සියලු ගැටලු * වෙනුවට * වෙනුවට * භාවිතා කිරීම. දැන් මගේ එකම ප්‍රශ්නය වන්නේ! / ෆෝල්ඩරය සහ! / ෆෝල්ඩරය / * අතර වෙනස කුමක්ද? * නොමැතිව මම! / ෆෝල්ඩරය භාවිතා කරන්නේ නම්, එය මට පැවසිය හැකි තාක් දුරට ෆෝල්ඩරයේ ඇති සියලුම ලිපිගොනු වල වෙනස්කම් ලබා ගනී.
ඩලින්

1
@ ඩලින් කිසිදු වෙනසක් නැත. එක් අයෙකු ෆෝල්ඩරයක් සුදු ලැයිස්තු ගත කරන අතර අනෙක එම ෆෝල්ඩරයේ ළමයින් සුදු ලැයිස්තු ගත කරයි, එය එකම දේ කරයි. එකම ගැටළුව ෆොල්ඩරයක් හෝ ගොනු සමාගමේ මව් හැකි දෙයක් නොවන නිසා ඒ, whitelisted කිරීමට පෙර whitelisted කළ යුතු වේ /*නම් !/nested/folder/*(හෝ ඊට සමාන !/nested/folder) නොකර !/nested/හෝ !/nestedපළමු! (සහ බොහෝ විට /nested/*අතර). මතක තබා ගත යුතු උපක්‍රමයක් නම්, ඔබ ගැඹුරින් කැදැලි සහිත උප ෆෝල්ඩරයක් සුදු ලැයිස්තු ගත කරන්නේ නම්, සෑම උප ෆෝල්ඩරයකම ළමයින් කළු කර දැමිය යුතු අතර, එම අසාදු ලේඛණ "කප්පාදු තරුව" සමඟ අවසන් වේ ...
රයන් ටේලර්

75

තව ටිකක් විශේෂිත:

උදාහරණය: තුළ ඇති සියල්ල නොසලකා හරින්න webroot/cache- නමුත් තබා ගන්න webroot/cache/.htaccess.

cacheෆෝල්ඩරයෙන් පසු කප්පාදුව (/) සැලකිල්ලට ගන්න :

අසාර්ථකයි

webroot/cache*
!webroot/cache/.htaccess

කටයුතු

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

ඔබ VS කේතය භාවිතා කරන්නේ නම්, .gitkeep සහිත ෆෝල්ඩරයකට මෙය යෙදීමෙන් පසු ගොනු වර්ණ ගැන්වීම වැරදියට නොකිරීමට වගබලා ගන්න. මන්ද ෆෝල්ඩරයේ නම කොළ පැහැයට හැරෙන නමුත් .gitkeep ගොනුව අනෙක් නොසලකා හරින ලද ගොනු මෙන් අළු පැහැයට හැරේ; .gitkeep එය නොසලකා හරින ලද බවක් පෙනෙනු ඇත, නමුත් දකුණු පැත්තේ 'U' ඇති බව ඔබ දැකගත යුතුය, එය අනාවරණය වී ඇති බව
අඟවයි


30

නාමාවලියක ඇති සමහර ගොනු නොසලකා හැරීමට, ඔබ මෙය නිවැරදි පිළිවෙලට කළ යුතුය :

උදාහරණයක් ලෙස, ෆෝල්ඩරය තුළ සියල්ල index.php හා ෆෝල්ඩරය "config" හැර "යෙදුම" නොතකා ඇණවුම් කිරීමට වැටුප් අවධානය .

ඔබට පළමුව අවශ්‍යතාවය ප්‍රතික්ෂේප කළ යුතුය.

අසාර්ථකයි

application/*

!application/config/*

!application/index.php

කටයුතු

!application/config/*

!application/index.php

application/*


40
වැරදි. "සියල්ල නොසලකා හැරීම" පසු ඔබ ප්‍රතික්ෂේප කරයි.
කාලෝස්

2
git statusඔබගේ වෙනස්වීම් .gitignoreඅපේක්ෂා කළ පරිදි ක්‍රියාත්මක වේදැයි පරීක්ෂා කිරීමට රැවටෙන්න එපා
පිලිප් රාතේ

10
නම් git statusමෙම වැඩ නම් එය දෙස බලා සිටින දේ නොසලකා දේ ඔබට කියන්න යන්නේ නැහැ, කොහොමද කියා දැනගන්නේ කොහොමද?
ක්‍රිස්

1
riskris මුලින්ම git හැඹිලිය ඉවත් කරන්න. පළමුව "git rm --cached *" කරන්න එවිට ඔබට "git add --all" කළ හැකි අතර පසුව "git status" මඟින් ඔබට සියලු නව gitignore වෙනස්කම් පෙන්වනු ඇත.
මාර්ක් මැකෝර්ල්

ඔබට ** භාවිතා කළ හැකිය **
නික් ටර්නර්

20

ඔබට භාවිතා කළ හැකි git config status.showUntrackedFiles noඅතර, සොයා නොගත් සියලුම ලිපිගොනු ඔබෙන් සඟවනු ඇත. විස්තර man git-configසඳහා බලන්න.


බොහෝ දේ අතරින් ගොනු කිහිපයක් පමණක් කිරීමට ඔබට අවශ්‍ය නම් මෙය විශිෂ්ටයි!
ජොෂ් එම්

16

.Gitignore වෙතින් ෆෝල්ඩරය බැහැර කිරීම සඳහා, පහත සඳහන් දෑ කළ හැකිය.

!app/

app/*
!app/bower_components/

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

මේ සියල්ල ගොනු / ඇතුළත subfolders නොසලකා හරින 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 උප බහලුම් තිබේ නම්, මට තවමත් එය අක්ෂර වින්‍යාසය අවශ්‍ය වේ.

මෙය @ යරින්ගේ අදහස් දැක්වීමෙන්: https://stackoverflow.com/a/5250314/1696153

මේවා ප්‍රයෝජනවත් මාතෘකා විය:

මමත් උත්සාහ කළා

*
*/*
**/**

සහ **/wp-content/themes/**

හෝ /wp-content/themes/**/*

ඒ කිසිවක් මට වැඩ කළේ නැත. බොහෝ මංපෙත් සහ දෝෂ!


2
ඇතැම් ගොනු දිගු ඇතුළත් කිරීමට පමණක් ක්‍රියා කරන එකම ක්‍රමය මෙයයි. ඊටත් වඩා හොඳ, එය විශිෂ්ට ASCII කලාවක් කරයි: gist.github.com/Wolfgange3311999/91c671f5e4d3c56cf5a1
මැතිව් ඩී. ෂෝල්ෆීල්ඩ්

10

මට උප ෆෝල්ඩරයේ ගැටලුවක් තිබුණි.

වැඩ කරන්නේ නෑ:

/custom/*
!/custom/config/foo.yml.dist

කටයුතු:

/custom/config/*
!/custom/config/foo.yml.dist

9

ඉහත දක්වා ඇති පරිදි මම සියලු පිළිතුරු උත්සාහ කළ නමුත් කිසිවෙකු මට වැඩ කළේ නැත. Gitignore ප්‍රලේඛනය කියවීමෙන් පසු ( මෙහි ) ඔබ මුලින්ම ෆෝල්ඩරයක් බැහැර කළහොත් උප ෆෝල්ඩරයේ ගොනු නාම සුචිගත නොකරන බව මට පෙනී ගියේය. එබැවින් ඔබ ගොනුවක් ඇතුළත් කිරීම සඳහා විශ්මය දනවන සලකුණ භාවිතා කරන්නේ නම්, එය දර්ශකයේ සොයාගත නොහැකි අතර එමඟින් ඔබේ git සේවාදායකයට ඇතුළත් නොවේ.

විසඳුම සෙවීමේ මාර්ගය එයයි. මම වැඩ කිරීමට මගේ ෆෝල්ඩර ගසෙහි ඇති සියලුම උප ෆෝල්ඩර සඳහා ව්‍යතිරේක එකතු කිරීම ආරම්භ කළෙමි, එය රැකියාවක නිරයකි. පසුව මට පහත වින්‍යාසයට සවිස්තරාත්මක වින්‍යාසය සංයුක්ත කිරීමට හැකි විය, එය ප්‍රලේඛනයට තරමක් පටහැනිය ..

වැඩ කිරීම .ගිටිග්නෝර්:

# 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/

එහි ප්‍රති As ලයක් ලෙස මගේ git සේවාදායකයා තුළ Pro / 3rdparty / domain / modulename / folder තුළ ඇති ගොනු දෙක පමණක් ඊළඟ කැපවීම සඳහා වේදිකා ගත කර ඇති බව මට පෙනේ.

ඔබට එකම ෆෝල්ඩරයේ උප ෆෝල්ඩර කිහිපයක් සුදු ලැයිස්තු ගත කිරීමට අවශ්‍ය නම්, බැහැර කිරීමේ ප්‍රකාශයට පහළින් විස්මිත සලකුණු රේඛා කාණ්ඩ කරන්න:

# 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/

නැතහොත් එය අපේක්ෂා කළ පරිදි ක්‍රියාත්මක නොවේ.


අවසාන වශයෙන් පිළිතුරක් ක්‍රියාත්මක විය. .ගිටිග්නෝර් ඇත්ත වශයෙන්ම ක්‍රියා කරන්නේ කෙසේදැයි මට වැටහෙන්නේ කවදාදැයි මම කල්පනා කරමි
ඩේවිඩ්


8

මම දන්නවා මම සාදයට පරක්කුයි, නමුත් මෙන්න මගේ පිළිතුර.

O ජොකිම් පැවසූ පරිදි, ගොනුවක් නොසලකා හැරීමට, ඔබට පහත වැනි දෙයක් භාවිතා කළ හැකිය.

# 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

ඔබ දැක ඇති පරිදි, එම නීති නිර්වචනය කිරීම දුෂ්කර ය.

මෙම බාධකය නිරාකරණය කිරීම සඳහා, මම ඔබට සරල නීති රීති ජනනය කරන git-do-not-neg නමින් සරල කොන්සෝල යෙදුමක් නිර්මාණය කර ඇත්තෙමි . සවිස්තරාත්මක උපදෙස් සහිතව මම ව්‍යාපෘතිය ගිතුබ් හි සත්කාරකත්වය දරමි .

භාවිත උදාහරණය

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

මට බෝවර් සිට Jquery සහ Angular ඇත. බෝවර් ඒවා ස්ථාපනය කර ඇත

/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ඔබ සමඟ ෆෝල්ඩර පමණක් දැකිය හැකි අතර, එමඟින් ඒවායේ ඇති සියල්ල නිරීක්ෂණය වී ඇතැයි සිතීමට ඔබව රවටා ගත හැකිය.


6

OP හා සමාන ගැටළුවක් තිබුනද ඉහළ පෙළේ උත්තර 10 න් කිසිවක් සත්‍ය වශයෙන්ම ක්‍රියාත්මක නොවීය .
මම අවසානයේ පහත කරුණු සොයා ගතිමි

වැරදි වාක්‍ය ඛණ්ඩය:

*
!bin/script.sh

නිවැරදි වාක්‍ය ඛණ්ඩය:

*
!bin
!bin/script.sh

Gitignore man පිටුවෙන් පැහැදිලි කිරීම :

විකල්ප උපසර්ගයක් "!" රටාව ප්‍රතික්ෂේප කරන; පෙර රටාවකින් බැහැර කරන ඕනෑම ගැලපෙන ගොනුවක් නැවත ඇතුළත් වේ. එම ගොනුවේ මව් නාමාවලිය බැහැර කර ඇත්නම් ගොනුවක් නැවත ඇතුළත් කළ නොහැක . කාර්ය සාධන හේතූන් මත Git බැහැර කළ නාමාවලි ලැයිස්තුගත නොකරයි, එබැවින් අඩංගු ලිපිගොනු වල ඕනෑම රටාවක් අර්ථ දැක්වුවද කිසිදු බලපෑමක් නැත.

දීර් example උදාහරණය:

$ ගස.

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

$ cat .gitignore

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

it git status --untracked-files --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)

5

ලිපිගොනු කිහිපයක් සහ මූල ෆෝල්ඩර කිහිපයක් හැර සියල්ල නොසලකා හැරීමට අවශ්‍ය නම් සරල විසඳුම :

/*
!.gitignore
!showMe.txt
!my_visible_dir

මැජික් පවතී /*(ඉහත විස්තර කර ඇති පරිදි) එය (මූල) ෆෝල්ඩරයේ ඇති සියල්ල නොසලකා හරින නමුත් පුනරාවර්තනය නොවේ.


4

තනි ලිපිගොනු ප්‍රතික්ෂේප කිරීම සම්බන්ධයෙන් ද මට යම් යම් ගැටලු ඇති විය. මට ඒවා කිරීමට හැකි විය, නමුත් මගේ IDE (IntelliJ) සෑම විටම නොසලකා හරින ලද ලිපිගොනු ගැන පැමිණිලි කළේය.

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

1

සාරාංශය

# Ignore everything
*

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

බොහෝ විට ඇතුළත් වන්නේ:

!.gitignore

යොමුව

Https://git-scm.com/docs/gitignore වෙතින් :

!රටාව නොසලකා හරින විකල්ප උපසර්ගයක් " "; පෙර රටාවකින් බැහැර කරන ඕනෑම ගැලපෙන ගොනුවක් නැවත ඇතුළත් වේ. එම ගොනුවේ මව් නාමාවලිය බැහැර කර ඇත්නම් ගොනුවක් නැවත ඇතුළත් කළ නොහැක. කාර්ය සාධන හේතූන් මත Git බැහැර කළ නාමාවලි ලැයිස්තුගත නොකරයි, එබැවින් අඩංගු ලිපිගොනු වල ඕනෑම රටාවක් අර්ථ දැක්වුවද කිසිදු බලපෑමක් නැත. වචනානුසාරයෙන් ආරම්භ වන රටා සඳහා \පළමු " !" ඉදිරිපිට බැක්ස්ලෑෂ් (" ") තබන්න !, උදාහරණයක් ලෙස, " \!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/**/*

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.