එම කරදරකාරී මැක් ඕඑස් එක්ස් .DS_Store
ලිපිගොනු Git ගබඩාවකින් ඉවත් කරන්නේ කෙසේද?
එම කරදරකාරී මැක් ඕඑස් එක්ස් .DS_Store
ලිපිගොනු Git ගබඩාවකින් ඉවත් කරන්නේ කෙසේද?
Answers:
පවතින ලිපිගොනු ගබඩාවෙන් ඉවත් කරන්න:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
රේඛාව එක් කරන්න
.DS_Store
.gitignore
ඔබගේ ගබඩාවේ ඉහළ මට්ටමින් සොයාගත හැකි ගොනුවට (හෝ එය දැනටමත් නොමැති නම් නිර්මාණය කර ඇත). ඉහළ නාමාවලියෙහි ඇති මෙම විධානය සමඟ ඔබට මෙය පහසුවෙන් කළ හැකිය
echo .DS_Store >> .gitignore
ඉන්පසු
git add .gitignore
git commit -m '.DS_Store banished!'
-exec
දියත් කරනු ඇති අතර සියලු මාර්ග එක් විධාන රේඛාවකට දමනු ඇත. බොහෝ විට මම වඩාත් කැමති වන්නේ විශේෂ චරිත රාශියක් පැන යාම ගැන කරදර විය යුතු නැති බැවිනි. git-rm
xargs
xargs
.DS_Store
කිරීම .gitignore
පුනරාවර්තීද? එනම්, එය ද නොසලකා හරිනු some/level/of/folders/.DS_Store
ඇත්ද?
බෙන්සාඩෝ සහ වෙබ්මාට්ගේ පිළිතුරු ඒකාබද්ධ කිරීම, යාවත්කාලීන කිරීම, රෙපෝ හි git rm
නොමැති ලිපිගොනු අසමත් නොවීම සහ ඕනෑම පරිශීලකයෙකුට එය සාමාන්යයෙන් පේස්ට් කළ හැකි බවට පත් කිරීම:
# remove any existing files from the repo, skipping over ones not in repo
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
# specify a global exclusion list
git config --global core.excludesfile ~/.gitignore
# adding .DS_Store to that list
echo .DS_Store >> ~/.gitignore
~/.gitignore
මගේ ගෝලීය බැහැර ගොනුව තිබීම වේදනාවක් බව මට පෙනී ගියේය. ගෝලීය වශයෙන් නොසලකා හැරීමට මට අවශ්ය නැති මගේ නිවාස නාමාවලියෙන් බැහැර කිරීමට අවශ්ය ගොනු තිබේ . මම ~/.gitexcludes
ඒ වෙනුවට එකම විධානයක් භාවිතා කරමි :core.excludesfile
මෙම ගැටළුව විසඳීම සඳහා ඇති හොඳම විසඳුම නම්, ඔබේ පද්ධතියේ ඇති සියලුම git repos වෙතින් මෙම ලිපිගොනු ගෝලීයව නොසලකා හැරීමයි. ගෝලීය gitignore ගොනුවක් නිර්මාණය කිරීමෙන් මෙය කළ හැකිය:
vi ~/.gitignore_global
වැනි ගොනු නොසලකා හැරීම සඳහා රීති එකතු කිරීම:
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
දැන්, මෙම ගොනුව ඔබගේ ගෝලීය git වින්යාසයට එක් කරන්න:
git config --global core.excludesfile ~/.gitignore_global
සංස්කරණය කරන්න:
යෙදුම් වත්කම් ලෙස කැපවීමට අවශ්ය විය හැකි අයිකන ඉවත් කරන ලදි.
සමහර අවස්ථා වලදී ඔබට සමහර ගොනු ගෝලීයව නොසලකා හැරීමට අවශ්ය විය හැකිය. මට නම් .DS_Store එකකි. මෙන්න කොහොමද:
git config --global core.excludesfile /Users/mat/.gitignore
(හෝ ඔබ කැමති ඕනෑම ගොනුවක්)
ඉන්පසු ගොනුව repo හි .gitignore මෙන් සංස්කරණය කරන්න. ඔබ නිරපේක්ෂ මාර්ගයක් භාවිතා කළ යුතු යැයි මම සිතමි.
ලිපිගොනු වල වෙනස්වීම් ඇති බැවින් ඒවා ඉවත් කිරීමට ඔබට නොහැකි නම්:
git rm --cached -f *.DS_Store
ටර්මිනලය විවෘත කර "cd <ProjectPath>" ටයිප් කරන්න
පවතින ගොනු ඉවත් කරන්න:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
nano .gitignore
මෙය එකතු කරන්න .DS_Store
"ctrl + x" ටයිප් කරන්න
"Y" ටයිප් කරන්න
ගොනුව සුරැකීමට ඇතුළත් කරන්න
git add .gitignore
git commit -m '.DS_Store removed.'
nano .gitignore
ගොනුව නොමැති නම් නිර්මාණය කරයි, මෙම විධානය ව්යාපෘති මූල ෆෝල්ඩරයෙන් ක්රියාත්මක කළ යුතුය
ඉහළම ඡන්දය දුන් පිළිතුර නියමයි, නමුත් මා වැනි වංචනිකයින්ට උදව් කිරීම, මෙන්න .gitignore ගොනුව නිර්මාණය කරන්නේ කෙසේද, එය සංස්කරණය කරන්න, සුරකින්න, ඔබ දැනටමත් git වෙත එකතු කර ඇති ලිපිගොනු ඉවත් කර ගොතබ් වෙත තල්ලු කරන්න.
.Gitignore ගොනුව සාදන්න
.Gitignore ගොනුවක් සෑදීම සඳහා, ඔබට touch
නිශ්චිත නමක් සහිත හිස් ගොනුවක් සාදන ගොනුව කළ හැකිය . .Gitignore නමින් ගොනුවක් සෑදීමට අපට අවශ්ය බැවින් අපට විධානය භාවිතා කළ හැකිය:
touch .gitignore
ලිපිගොනු නොසලකා හරින්න
දැන් ඔබ ඔබේ .gitignore වෙත DS ගබඩා ගොනු නොසලකා හැරීමට git ට පවසන පේළිය එක් කළ යුතුය. මෙය සිදු කිරීම සඳහා ඔබට නැනෝ සංස්කාරකය භාවිතා කළ හැකිය.
nano .gitignore
නැනෝ හොඳයි, එයින් මිදෙන්නේ කෙසේද යන්න පිළිබඳ උපදෙස් එයට ඇතුළත් ය. ( Ctrl- Oසුරැකීමට, Ctrl-X පිටවීමට)
නොසලකා හැරීමට පොදු ලිපිගොනු ලැයිස්තුගත කරන මෙම ගිතූබ් සාරාංශයේ සමහර අදහස් පිටපත් කර අලවන්න . මෙම ප්රශ්නයට පිළිතුරු දීමට වඩාත්ම වැදගත් ඒවා වනුයේ:
# OS generated files #
######################
.DS_Store
.DS_Store?
# අදහස් දැක්වීම් වන අතර, ඔබේ ගොනුව වැඩෙන විට එය සංවිධානය කිරීමට ඔබට උපකාරී වනු ඇත.
මෙම ගිතුබ් ලිපිය සාමාන්ය අදහස් සහ මාර්ගෝපදේශ කිහිපයක් ද ඇත.
දැනටමත් git වෙත එකතු කර ඇති ගොනු ඉවත් කරන්න
අවසාන වශයෙන්, ඔබ ඇත්ත වශයෙන්ම එම ඩීඑස් ගබඩා ගොනු ඔබේ නාමාවලියෙන් ඉවත් කළ යුතුය.
ඉහළින් ඡන්දය දුන් පිළිතුරෙන් මෙම ශ්රේෂ් command විධානය භාවිතා කරන්න. මෙය ඔබගේ ඩිරෙක්ටරියේ ඇති සියලුම ෆෝල්ඩර හරහා ගොස් එම ගොනු git වෙතින් ඉවත් කරයි.
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
.ගිටිග්නෝර් ගිතුබ් දක්වා තල්ලු කරන්න
අවසාන පියවර, ඔබ ඇත්ත වශයෙන්ම ඔබේ .gitignore ගොනුව කැප කළ යුතුය.
git status
git add .gitignore
git commit -m '.DS_Store banished!'
එය වැඩ කිරීමට මට ඉහත git-rm git rm ලෙස වෙනස් කිරීමට සිදු විය:
find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print
ඒවා භාවිතයෙන් මකා දමන්න git-rm
, ඉන්පසු .gitignore
ඒවා නැවත එකතු කිරීම නැවැත්වීමට .DS_Store එක් කරන්න . ඒවා සියල්ලම එකට නිර්මාණය වීම නැවැත්වීමට ඔබට බ්ලූහාර්ස්ට් භාවිතා කළ හැකිය
ඔබට සෑම ෆෝල්ඩරයකට සහ උප ෆෝල්ඩරයකට DS_Store ගොනු ඉවත් කිරීමට අවශ්ය නම්:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
ඒවා නොසලකා හරින්න:
echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
පහත දැක්වෙන දේ මට වඩාත් සුදුසු විය. අසමසම ලිපිගොනු සහ දේශීය වෙනස් කිරීම් සහිත ලිපිගොනු හසුරුවන ලදි. යොමුව සඳහා, මෙය මැක් 10.7 පද්ධතියේ ධාවනය වන git 1.7.4.4 මත විය.
සොයාගෙන ඉවත් කරන්න:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f
ගෝලීය හරය සැකසීමෙන් මම සියලු ගබඩාවල .DS_Store ගෝලීයව නොසලකා හරිමි. Excludesfile.
පළමුව, ගොනුව සාදන්න (එකක් දැනටමත් නොමැති නම්):
touch ~/.gitignore
ඉන්පසු පහත පේළිය එකතු කර සුරකින්න:
.DS_Store
දැන් ගෝලීයව ගොනුවට ගරු කිරීම සඳහා git වින්යාස කරන්න:
git config --global core.excludesfile ~/.gitignore
මම සාදයට ටිකක් පරක්කුයි, නමුත් මට හොඳ පිළිතුරක් තිබේ. .DS_Store ගොනු ඉවත් කිරීම සඳහා, ටර්මිනල් කවුළුවකින් පහත දැක්වෙන විධානයන් භාවිතා කරන්න, නමුත් 'find' සමඟ ගොනු මකා දැමීමට ප්රවේශම් වන්න. -Name විකල්පය සමඟ නිශ්චිත නමක් භාවිතා කිරීම එය භාවිතා කිරීමට ආරක්ෂිත ක්රමවලින් එකකි:
cd directory/above/affected/workareas
find . -name .DS_Store -delete
ඔබට පෙර සහ පසු ඒවා ලැයිස්තු ගත කිරීමට අවශ්ය නම් ඔබට "-delete" ඉවත් කළ හැකිය. එය ඔවුන් නැති වී ඇති බව ඔබට සහතික වනු ඇත.
~ / .Gitignore_global උපදෙස් සම්බන්ධයෙන්: මෙහි ප්රවේශම් වන්න. ඔබට අවශ්ය වන්නේ එම ලස්සන ගොනුව .gitignore හි එක් එක් වැඩපොළේ ඉහළ මට්ටමේ තබා එය සිදු කිරීමයි, එවිට ඔබේ ගබඩාව ක්ලෝන කරන ඕනෑම කෙනෙකුට එහි භාවිතයේ වාසිය ලැබෙනු ඇත.
ස්නිප්ලර් වෙතින් පහත දැක්වෙන රේඛාව .DS_Store
දේශීය වෙනස් කිරීම් සහිත සියල්ල අතුගා දැමීමට වඩාත්ම සුදුසු බව මට පෙනී ගියේය.
find . -depth -name '.DS_Store' -exec git-rm --cached '{}' \; -print
--cached
විකල්පය, .DS_Store
එය කෙසේ හෝ ප්රතිනිෂ්පාදනය වන බැවින් ඔබේ දේශීයව තබා ගනී .
ඉහත සඳහන් කළ ආකාරයටම .DS_Store
, ඔබේ ව්යාපෘතියේ මුල .gitignore ගොනුවට එක් කරන්න. එවිට එය තවදුරටත් ඔබ ඉදිරියේ නොපවතිනු ඇත.
මෙය ක්රියාත්මක වනු ඇත:
find . -name "*.DS_Store" -type f -exec git-rm {} \;
.DS_Store
ඇතුළුව, අවසන් වන සියලුම ගොනු එය මකා දමයි ._.DS_Store
.
"*.DS_Store"
, එවිට තරු ලකුණ find
ෂෙල් එකෙන් පුළුල් කරනවාට වඩා සම්ප්රේෂණය වේ .
කිසියම් හේතුවක් නිසා ඉහත කිසිවක් මගේ මැක් මත ක්රියා කළේ නැත.
මගේ විසඳුම ටර්මිනල් ධාවනයේ සිට ය:
rm .DS_Store
ඉන්පසු පහත විධානය ක්රියාත්මක කරන්න:
git pull origin master
මෙම ගොනුව සදහටම ඉවත් කර ගැනීමට හොඳම ක්රමය වන අතර නැවත කිසි විටෙකත් ඒ ගැන කරදර විය යුතු නැත
ගෝලීය .gitignore ගොනුවක් සාදන්න:
echo .DS_Store >> ~ / .gitignore_global
ඔබගේ සියලුම ගබඩාවන් සඳහා මෙම ගොනුව භාවිතා කිරීමට ඔබට අවශ්ය බව git ට දන්වන්න:
git config --global core.excludesfile ~ / .gitignore_global සහ එය එයයි! .DS_ ගබඩාව ඔබගේ මාර්ගයෙන් බැහැරයි.
මෙය මට ප්රයෝජනවත් විය, ඉහළින් පිළිතුරු දෙකක එකතුවක්:
නොසලකා හරින ලද ගොනු ඉවත් කරන්න:
(.DS_Store)
$ find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
මෙම ගැටළුව විසඳීම සඳහා විසඳුම් කිහිපයක් තිබේ. .DS_Store ගොනු සෑදීමෙන් වළක්වා ගැනීමට, ෆෝල්ඩර බැලීමට OS X Finder භාවිතා නොකරන්න. ෆෝල්ඩර බැලීමට විකල්ප ක්රමයක් වන්නේ යුනික්ස් විධාන රේඛාව භාවිතා කිරීමයි. .DS_Store ගොනු ඉවත් කිරීම සඳහා DS_Store Terminator නමින් තෙවන පාර්ශවීය නිෂ්පාදනයක් භාවිතා කළ හැකිය. .DS_Store ගොනු සමස්ත පද්ධතියෙන් මකා දැමීමට යුනික්ස් ෂෙල් විධානයක් භාවිතා කළ හැකිය. යෙදුම් වලින් පර්යන්තය දියත් කරන්න: උපයෝගිතා යුනික්ස් ෂෙල් විමසුමේදී පහත දැක්වෙන යුනික්ස් විධානය ඇතුළත් කරන්න: sudo find / -name ".DS_Store" -depth -exec rm {} \; මුරපදයක් ඉල්ලා සිටින විට මැක් ඕඑස් එක්ස් පරිපාලක මුරපදය ඇතුළත් කරන්න.
මෙම විධානය වන්නේ .DS_Store හි සියලුම සිදුවීම් ගොනු පද්ධතියේ මූල (/) සිට මුළු යන්ත්රය හරහා සොයා ගැනීම සහ ඉවත් කිරීමයි. නියමිත කාර්යයක් ලෙස ක්රියාත්මක කිරීම සඳහා මෙම විධානය වින්යාස කිරීමට පහත පියවර අනුගමනය කරන්න: යෙදුම් වලින් පර්යන්තය දියත් කරන්න: උපයෝගිතා යුනික්ස් ෂෙල් විමසුමේදී පහත සඳහන් යුනික්ස් විධානය ඇතුළත් කරන්න:
sudo crontab -e මුරපදයක් ඉල්ලා සිටින විට මැක් ඕඑස් එක්ස් පරිපාලක මුරපදය ඇතුළත් කරන්න. Vi සංස්කාරකයේ එක් වරක් ඔබගේ යතුරුපුවරුවේ I අකුර ඔබා පහත සඳහන් දෑ ඇතුළත් කරන්න:
15 1 * * * root find / -name ".DS_Store" -depth -exec rm {} \;
මෙය පහත දැක්වෙන ආකෘතිය සහිත ක්රොන්ටාබ් ප්රවේශය ලෙස හැඳින්වේ:
මිනිත්තු පැය DayOfMonth මාසය DayOfWeek පරිශීලක විධානය.
Crontab ඇතුළත් කිරීම යනු පද්ධතිය විසින් සෑම දිනකම පාන්දර 1: 15 ට root ලෙස හඳුන්වන ගිණුම මඟින් විධානය ස්වයංක්රීයව ක්රියාත්මක කරනු ඇති බවයි.
විධානය ආරම්භ වන්නේ සියල්ල සොයා ගැනීමෙනි. පද්ධතිය ක්රියාත්මක නොවන්නේ නම් මෙම විධානය ක්රියාත්මක නොවේ.
ප්රවේශය සුරැකීමට Esc යතුර එක් වරක් ඔබන්න, ඉන්පසු එකවර Shift + z + z ඔබන්න.
සටහන: 4 වන පියවරෙහි තොරතුරු vi සංස්කාරක සඳහා පමණි.
මෙය ඔබගේ ගොනුවට එක් කරන්න .gitignore
#Ignore folder mac
.DS_Store
මෙය සුරකිමින් කැප වන්න
git add -A
git commit -m "ignore .DS_Store"
දැන් ඔබ ඔබගේ සියලු කැපවීම් සඳහා මෙය නොසලකා හරියි
.gitignore
විධානය භාවිතා කර ගොනුවක් සාදන්නtouch .gitignore
එහි පහත පේළි එක් කරන්න
.DS_Store
.gitignore
ගොනුව සුරකින්න පසුව එය ඔබගේ git repo වෙත තල්ලු කරන්න.
.DS_STORE
දේශීයව ඉවත් කිරීමට අවශ්ය නැත
එය .gitignore
ගොනුවට එක් කරන්න
.Gitignore ගොනුව යනු ව්යපෘතියකදී නොසලකා හැරිය යුතු ලිපිගොනු හෝ ෆෝල්ඩර Git ට පවසන පෙළ ගොනුවකි.
විධාන
nano .gitignore
.DS_Store
ඉන්පසු ක්ලික් කරන්නCTRL+X > y > Hit Return
git status
ඔබගේ වෙනස්කම් දෙස අවසාන වශයෙන් බැලීමටgit add .gitignore
git commit -m 'YOUR COMMIT MESSAGE'
git push origin master