මා සතුව ඇති ෆෝල්ඩරය මා සතුව application/
ඇත .gitignore
. application/
ෆෝල්ඩරයේ ඇතුළත ෆෝල්ඩරය application/language/gr
ඇත. මෙම ෆෝල්ඩරය ඇතුළත් කරන්නේ කෙසේද?
මම මෙය උත්සාහ කර ඇත්තෙමි
application/
!application/language/gr/
වාසනාව නැතිව ...
මා සතුව ඇති ෆෝල්ඩරය මා සතුව application/
ඇත .gitignore
. application/
ෆෝල්ඩරයේ ඇතුළත ෆෝල්ඩරය application/language/gr
ඇත. මෙම ෆෝල්ඩරය ඇතුළත් කරන්නේ කෙසේද?
මම මෙය උත්සාහ කර ඇත්තෙමි
application/
!application/language/gr/
වාසනාව නැතිව ...
Answers:
ඔබ බැහැර කරන්නේ නම් application/
, එය යටතේ ඇති සියල්ල සැමවිටම බැහැර කරනු ලැබේ (පසුකාලීන negative ණාත්මක බැහැර කිරීමේ රටාවක් (“unignore”) යටතේ යම් දෙයකට ගැලපේ.application/
).
ඔබට අවශ්ය දේ කිරීමට නම්, ඔබට “unignore” කිරීමට අවශ්ය ඕනෑම දෙයක නාමාවලිය “unignore” කළ යුතුය. සාමාන්යයෙන් ඔබ මෙම තත්වය සඳහා නීති රීති යුගල වශයෙන් අවසන් කරයි: නාමාවලියක ඇති සියල්ල නොසලකා හරින්න, නමුත් සමහර උප බහලුම් නොවේ.
# 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/
, Git කිසි විටෙකත් යටින් ඇති කිසිවක් දෙස නොබලනු ඇති අතර dir
, එබැවින් කිසි විටෙකත් “බැහැර නොකරන” රටාවන් කිසිවක් යටින් ඇති කිසිවක් සඳහා යොදා නොගනී dir
.dir/*
ගැන කිසිවක් නොකියයි dir
; එය යටින් ඇති සියල්ල බැහැර කරයි dir
. සමඟ dir/*
, Git හි සෘජු අන්තර්ගතයන් සැකසෙනු ඇතdir
හි content , වෙනත් රටාවන්ට යම් අන්තර්ගතයක් (බැහැර කිරීමට) අවස්ථාවක් ලබා දෙයි ( !dir/sub/
)./*
යාම වැදගත්. නාමාවලිය බැහැර කර ඇත්නම්, Git කිසි විටෙකත් එම නාමාවලියෙහි අන්තර්ගතය දෙස බලන්නේ නැත. රටාව dir/
නම් කරන ලද නාමාවලියක් dir
සහ (ව්යංගයෙන්) ඒ යටතේ ඇති සියල්ල බැහැර කරයි . රටාව තමා dir/*
ගැන කිසිවක් නොකියයි dir
; එය යටින් ඇති සියල්ල බැහැර කරයි dir
. සමඟ dir/
, Git කිසි විටෙකත් යටින් ඇති කිසිවක් දෙස නොබලනු ඇති අතර dir
, එබැවින් කිසි විටෙකත් “බැහැර නොකරන” රටාවන් කිසිවක් යටින් ඇති කිසිවක් සඳහා යොදා නොගනී dir
. සමඟ dir/*
, Git dir
හි content ජු අන්තර්ගතයන් ක්රියාවට නංවන අතර , වෙනත් රටාවන්ට යම් අන්තර්ගතයක් (බැහැර කිරීමට) අවස්ථාවක් ලබා දෙයි ( !dir/sub/
).
git add -f .
git status
, එමඟින් ඉහළ මට්ටමේ නාමාවලිය එක් කිරීමට යන බව ඔබට කියනු ඇත. ඒ වෙනුවට, git add
ඉහළ මට්ටමේ නාමාවලියක් කරන්න, ඉන්පසු git status
රටාවට ගැලපෙන ගොනු වල උප කුලකය ලැයිස්තුගත කරනු ඇත.
Git 1.9 / 2.0 (Q1 2014) සඳහා කාර්ස්ටන් බ්ලීස් (kblees) වෙතින් 59856de කැපවීම එම අවස්ථාව පැහැදිලි කරයි:
gitignore.txt
: බැහැර කළ නාමාවලිවල පුනරාවර්තන ස්වභාවය පැහැදිලි කරන්නවිකල්ප උපසර්ගයක් "
!
රටාව නොසලකා හරින ; පෙර රටාවකින් බැහැර කරන ඕනෑම ගැලපෙන ගොනුවක් නැවත ඇතුළත් වේ.එම ගොනුවේ මව් නාමාවලිය බැහැර කර ඇත්නම් ගොනුවක් නැවත ඇතුළත් කළ නොහැක. (
*
)
(*
: git 2.8+ හි සමහර කොන්දේසි සපුරා නොමැති නම්, පහත බලන්න)
කාර්ය සාධන හේතූන් මත Git බැහැර කළ නාමාවලි ලැයිස්තුගත නොකරයි, එබැවින් අඩංගු ලිපිගොනු වල ඕනෑම රටාවක් අර්ථ දැක්වුවද කිසිදු බලපෑමක් නැත.වචනාර්ථයෙන් ආරම්භ වන රටා සඳහා
\
පළමු "!
" ඉදිරිපිට බැක්ස්ලෑෂ් (" ") තබන්න!
, උදාහරණයක් ලෙස, "\!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/**
දී ඇති ෆෝල්ඩරයක් තුළ ගොනු සුදු ලැයිස්තු ගත කිරීමට පෙර ඔබ පළමුව සුදු ලැයිස්තු ෆෝල්ඩර කළ යුතුය .
යාවත්කාලීන කිරීම පෙබරවාරි / මාර්තු 2016:
Git 2.9.x / 2.10 (2016 මැද?) සමඟ, නැවත ඇතුළත් කළ මාවතේ ආදේශක කාඩ්පතක් නොමැති නම්, එම ගොනුවේ මව් නාමාවලිය බැහැර කර ඇත්නම් ගොනුවක් නැවත ඇතුළත් කළ හැකි බව සලකන්න .
Nguyễn Thái Ngọc Duy ( pclouds
) මෙම අංගය එක් කිරීමට උත්සාහ කරයි:
Git 2.9+ සමඟ, මෙය සැබවින්ම ක්රියාත්මක විය හැකි නමුත් අවසානයේ එය ආපසු හරවන ලදි:
application/
!application/language/gr/
v2.8.1.windows.1
නමුත් එය ක්රියාත්මක වන බවක් නොපෙනේ :(
application/
+ !application/language/gr/
රටාව තහවුරු කිරීම අපේක්ෂිත පරිදි ක්රියාත්මක වේ.
H ක්රිස් ජොන්සන්ගේ පිළිතුර විශිෂ්ටයි, නමුත් Git හි නවතම අනුවාදයන් සමඟ (1.8.2 හෝ ඊට පසු), ඔබට තව ටිකක් කෙටිකාලීන විසඳුමක් සඳහා උත්තේජනය කළ හැකි ද්විත්ව තරු ලකුණු රටාවක් ඇත:
# assuming the root folder you want to ignore is 'application'
application/**/*
# the subfolder(s) you want to track:
!application/language/gr/
මේ ආකාරයෙන් ඔබට නිරීක්ෂණය කිරීමට අවශ්ය උප ෆෝල්ඩරයේ මව් නාමාවලිය "නොසලකා හැරීම" අවශ්ය නොවේ.
Git 2.17.0 සමඟ (මෙම අනුවාදයට පෙර කොපමණ වේලාවකට පෙරදැයි නිශ්චිතවම කිව නොහැක. සමහර විට 1.8.2 දක්වා ආපසු යා හැක), **
ඔබේ ගොනුව (ගොනු) දක්වා දිවෙන එක් එක් උප බහලුම සඳහා බැහැර කිරීම් සමඟ ඒකාබද්ධ වූ රටාව භාවිතා කරයි. උදාහරණයක් වශයෙන්:
# 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
**
ශුන්ය උප ෆෝල්ඩර සමඟ සැසඳිය හැකි අතර *
එය ගැලපීම language
හා බැහැර කිරීම, ඇතුළත් කිරීම වළක්වයි gr
. දෙමව්පියන්ගේ සම්පූර්ණ දාමය - ක්රිස් ජොන්සන් නිර්දේශ කරන්නේ තවමත් අවශ්ය බවයි.
/www/**/* !/www/config.xml !/www/res
පෙනේ, නමුත් එය මට git 2.3.7 හි ක්රියා නොකරයි ... config.xml සහ res නාමාවලිය තවමත් නොසලකා හැර ඇත.
!/www/res/
. ඔබට folder/**/*
රටාව භාවිතා කළ හැකිය , නමුත් ඔබට එක් කිරීමට අවශ්ය එක් එක් උප බහලුම සඳහා බැහැර කිරීම් එකතු කිරීමට අවශ්යය. නොසලකා හැරීම / බැහැර කිරීම යන සංයෝජනයට වඩා එය තවමත් කෙටි හා කියවිය හැකි ය.
මේ පිළිබඳව සමාන ප්රශ්න රාශියක් ඇත, එබැවින් මම කලින් ලියා ඇති දේ පළ කරමි:
මගේ යන්ත්රයේ වැඩ කිරීමට මට ඇති එකම ක්රමය එය මේ ආකාරයෙන් කිරීමයි:
# 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 උප බහලුම් තිබේ නම්, මට තවමත් එය අක්ෂර වින්යාසය අවශ්ය වේ.
මෙය @ යරින්ගේ අදහස් දැක්වීමෙන්: https://stackoverflow.com/a/5250314/1696153
මේවා ප්රයෝජනවත් මාතෘකා විය:
මමත් උත්සාහ කළා
*
*/*
**/**
සහ **/wp-content/themes/**
හෝ /wp-content/themes/**/*
ඒ කිසිවක් මට වැඩ කළේ නැත. අත්හදා බැලීම් සහ දෝෂ ගොඩක්!
!
නීති රීති පතුලේ තැබීමට වග බලා ගන්න .
මට පෙනී ගියේ මෙය සැබවින්ම ක්රියාත්මක වන බවයි.
**/node_modules/*
!**/node_modules/keep-dir
සරලම හා බොහෝ විට හොඳම ක්රමය වන්නේ ගොනු අතින් එකතු කිරීමට උත්සාහ කිරීමයි (සාමාන්යයෙන් මෙය .gitignore
විලාසිතාවේ නීතිවලට වඩා ප්රමුඛතාවය ගනී ):
git add /path/to/module
ධජය -N
එක් කිරීමේ අභිප්රාය ඔබට අවශ්ය විය හැකිය , ඔබ ඒවා එකතු කරන ලෙස යෝජනා කිරීමට, නමුත් වහාම නොවේ. මම බොහෝ විට මෙය කරන්නේ නව ලිපිගොනු සඳහා ය.
මෙය පහසුවෙන් අනුපිටපත් QA විය හැකි දේ පිළිබඳ පළ කරන ලද පිළිතුරක පිටපතකි . දෘශ්යතාව වැඩි කිරීම සඳහා මම එය මෙහි නැවත තැපැල් කරමි g ගිටිගෝර් නීති රීති අවුල් නොකිරීමට මට පහසුය.
ඉතින්, බොහෝ ක්රමලේඛකයින් නෝඩ් භාවිතා කරන බැවින්. මෙම ප්රශ්නය සපුරාලන භාවිත අවස්ථාව වන්නේ node_modules
එක් මොඩියුලයක් හැර බැහැර module-a
කිරීමයි:
!node_modules/
node_modules/*
!node_modules/module-a/
2.10.2.windows.1
.
අමතර පිළිතුරක් එක් කරන්න:
!/.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
මෙහි ප්රති result ලය:
විශේෂයෙන් පැරණි Git අනුවාද සඳහා, බොහෝ යෝජනා එතරම් සාර්ථක නොවනු ඇත. එය එසේ නම්, වෙනත් සැකසුම් නොසලකා අන්තර්ගතය ඇතුළත් කිරීමට අවශ්ය ඩිරෙක්ටරියට වෙනම .ගිටිග්නෝර් එකක් දමා අවශ්ය දේට ඉඩ දෙන්න.
උදාහරණයක් ලෙස: /.gitignore
# ignore all .dll files
*.dll
/dependency_files/.gitignore
# include everything
!*
එබැවින් / යැපුම්_ ලිපිගොනු (.dll ගොනු පවා) සියල්ල හොඳින් ඇතුළත් කර ඇත.
මෙවැනිම සිද්ධියක් මා විසින් සොයාගෙන ඇත, එහිදී පෙරනිමියෙන්, තරු ලකුණු .gitignore
භාවිතා කිරීම නොසලකා හරිමින් පොදු නාමාවලිය අභිබවා යයි.
*
!public
!.gitignore
ඔබ OP තත්වයට දිව ගියහොත් මෙය ප්රමාණවත් නොවේ.
ඔබට නිශ්චිත උප ෆෝල්ඩරයක් කිරීමට අවශ්ය නම් public
, උදා. ඔබේ public/products
නාමාවලියෙහි එක් උප ෆෝල්ඩරයක ගැඹුරු ගොනු ඇතුළත් කිරීමට අවශ්ය යැයි කියන්න. උදා: public/products/a/b.jpg
ඒවා නිවැරදිව හඳුනාගත නොහැකි වනු ඇත, ඔබ ඒවා විශේෂයෙන් මේ ආකාරයෙන් එකතු කළත් !/public/products
,!public/products/*
ආදිය ..
විසඳුම නම්, මේ සියල්ල මඟ හැරවීම සඳහා ඔබ මේ වගේ සෑම මාර්ග මට්ටමකටම ප්රවේශයක් එක් කිරීමට වග බලා ගැනීමයි.
*
!.gitignore
!public/
!public/*/
!public/products/
!public/products/*
!public/products/*/
!public/products/*/
!public/products/*/*
ඔබට අවශ්ය දේ හරියටම ලබා ගැනීම සඳහා නාමාවලි ව්යුහය හරහා ගමන් කිරීම පිළිබඳ තවත් උදාහරණයක්. සටහන: මම බැහැර කළේ නැහැ 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
gitignore - නොසලකා හැරීම සඳහා හිතාමතාම සොයා නොගත් ගොනු නියම කරයි.
විශේෂිත ඩිරෙක්ටරියක් foo / bar හැර අනෙක් සියල්ල බැහැර කිරීමේ උදාහරණය ( කප්පාදුවකින් තොරව / * - සටහන් කරන්න , ආදේශක කාඩ්පත foo / bar තුළ ඇති සියල්ල බැහැර කරයි ):
$ 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
මම බොහෝ විට CLI හි මෙම ක්රියාකාරීත්වය භාවිතා කරමි .gitignore
, එහිදී මගේ වින්යාස කිරීම වෙනුවට , වෙනම .include
ගොනුවක් සාදමි, එහිදී සෘජු හෝ පුනරාවර්තන ලෙස නොසලකා හරින ලද නාමාවලි තිබියදීත් මට ඇතුළත් කළ යුතු (උප) නාමාවලි නිර්වචනය කරමි..gitignore
.
මේ අනුව, මම අතිරේකව භාවිතා කරමි
git add `cat .include`
සිදු කිරීමට පෙර, වේදිකා ගත කිරීමේදී.
OP වෙත, .include
මෙම රේඛා ඇති a භාවිතා කිරීමට මම යෝජනා කරමි :
<parent_folder_path>/application/language/gr/*
සටහන: භාවිතා කිරීම $ HOME (හෝ වෙනත් විශේෂිත නාමාවලියක්) නියම කිරීම සඳහා cat
(ඇතුළත .include
) අන්වර්ථයන් භාවිතා කිරීමට ඉඩ නොදේ . මෙයට හේතුව ඉහත විධානය භාවිතා කරන homedir/app1/*
විට පේළිය git add
දිස්වන git add 'homedir/app1/*'
අතර තනි උපුටා දැක්වීම්වල අක්ෂර ඇතුළත් කිරීම ('') උපුටා දැක්වීම් තුළ ඇති එක් එක් අක්ෂරයේ වචනාර්ථමය වටිනාකම ආරක්ෂා කරන අතර අන්වර්ථයන් වළක්වයි (වැනි) අක්ෂරයකම වචනාර්ථමය හෝමෙඩිර් ) ක්රියාකාරී වළක්වයි ( Bash Single බලන්න උපුටා දැක්වීම් ).
මෙහි උදාහරණයක් වන්නේ .include
මගේ ණයකට භාවිතා ගොනුව මෙතන .
/home/abhirup/token.txt
/home/abhirup/.include
/home/abhirup/.vim/*
/home/abhirup/.viminfo
/home/abhirup/.bashrc
/home/abhirup/.vimrc
/home/abhirup/.condarc
මට jquery නිෂ්පාදන js ගොනු සොයා ගැනීමට අවශ්ය වූ අතර මෙය ක්රියාත්මක විය:
node_modules/*
!node_modules/jquery
node_modules/jquery/*
!node_modules/jquery/dist/*
මගේ ජෙට් බ්රේන්ස් ඉන්ටෙලිජ් අයිඩීඒ .ගිටිගෝර් වින්යාසය, එහිදී මට .idea
හැර ෆෝල්ඩරය බැහැර කළ යුතුය .idea/runConfigurations
:
.idea
!.idea/
.idea/*
!.idea/runConfigurations/
බලන්න: https://github.com/daggerok/gitignore-idea-runConfigurations
.gitignore
රටා ආකෘතිය" ප්රලේඛනය දැන් පැහැදිලි වී ඇතැයි අපේක්ෂා කරමු (2013 දෙසැම්බර්). බලන්න මගේ පිළිතුර පහත