git ව්‍යාපෘතියක ඕනෑම 'බින්' නාමාවලියක් නොසලකා හැරීම


1249

මට මේ වගේ නාමාවලි ව්‍යුහයක් ඇත:

.git/
.gitignore
main/
  ...
tools/
  ...
...

ප්‍රධාන හා මෙවලම් ඇතුළත, සහ වෙනත් ඕනෑම නාමාවලියක, ඕනෑම මට්ටමක, මට නොසලකා හැරීමට අවශ්‍ය 'බින්' නාමාවලියක් තිබිය හැකිය (තවද මට එය යටතේ ඇති සියල්ල නොසලකා හැරීමට අවශ්‍යය). මම මේ සෑම රටාවක්ම .gitignore හි උත්සාහ කර ඇති නමුත් ඒවා කිසිවක් ක්‍රියාත්මක නොවේ:

/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too

මට උදව් කිරීමට කිසිවෙකුට හැකිද? මම මෙය කරන්නේ නම් පළමු රටාව (වැඩ කළ යුතු යැයි මා සිතන ක්‍රමය) හොඳින් ක්‍රියාත්මක වේ:

/main/**/bin/**/*

නමුත් සෑම ඉහළ පෙළේ නාමාවලියකටම ප්‍රවේශයක් ලබා ගැනීමට මට අවශ්‍ය නැති අතර නව එකක් එකතු කරන සෑම අවස්ථාවකම .gitignore වෙනස් කිරීමට මට අවශ්‍ය නැත.

මෙය නවතම msysgit භාවිතා කරමින් වින්ඩෝස් හි ඇත.

සංස්කරණය කරන්න: තවත් එක් දෙයක් නම්, ඒවායේ නම්වල 'බින්' උපස්ථරය ඇති ලිපිගොනු සහ නාමාවලි ඇත, ඒවා නොසලකා හැරීම මට අවශ්‍ය නැත :)


14
බොහෝ විට කවුරුහරි ප්‍රයෝජනවත් වනු ඇත: ඔබට නිධි කිහිපයක් තිබේ නම් සහ සෑම එකක්ම එකම .gitignore ගොනුවක් තිබේ නම්, ඔබට එය "පොදු" ස්ථානයට දමා දියත් කළ හැකිය> git config --global core.excludesfile ~ / .gitignore_global අවසාන පරාමිතිය මාර්ගය වේ පොදු ස්ථානයට. PS මම git සඳහා අලුත් වන අතර එය 'හොඳම පුහුණුව' නිර්දේශය දැයි විශ්වාස නැත. එබැවින් ඔබට එය කිරීමට අවශ්‍ය නැතිනම් කරුණාකර මට දන්වන්න. ඔබට ස්තුතියි.
බුද්ධ

මෙම **කාරක රීති, දැන්, (2013 මාර්තු, GIT 1.8.2) නිල වශයෙන් ලේඛනගත: බලන්න මගේ පිළිතුර පහත
VonC

2
සැබෑ අත්පොතේ වඩාත්ම යාවත්කාලීන අනුවාදය කියවීමට යමෙකුට අවශ්‍ය නම්, gitignore (5) අත්පොත පිටුව බලන්න .

මිත්‍රශීලී විකල්පය ඔබ එක් පේළියක වටිනා තොරතුරු සඳහා රචනා කියවීමට වෙහෙසට පත් වී ඇත්නම් atlassian.com/git/tutorials/saving-changes/…
suazithustra

Answers:


1854

1.8.2 අනුවාදයට පෙර, **හි විශේෂ අර්ථයක් නොතිබුණි .gitignore. 1.8.2 වන විට **උප බහලුම් හෝ වැඩි ගණනක් අදහස් කිරීමට git සහය දක්වයි ( මුදා හැරීමේ සටහන් බලන්න ).

ඩිරෙක්ටරි ගසක වත්මන් මට්ටමට වඩා පහළින් ඕනෑම තැනක බින් යනුවෙන් හැඳින්වෙන සියලුම නාමාවලි නොසලකා හැරීමේ .gitignoreක්‍රමය රටාව සහිත ගොනුවකි:

bin/

තුළ manපිටුව, බහලුම නොසලකා හැරීම කිසිම උදාහරණයක් ලෙස fooආනුෂාංගික රටාව භාවිතා කිරීම.

සංස්කරණය කරන්න: ඔබ තව දුරටත් ලුහුබැඳීමට අකමැති ඔබගේ git දර්ශකයේ බින් ෆෝල්ඩර තිබේ නම් ඒවා පැහැදිලිව ඉවත් කළ යුතුය. නව .gitignoreරටාවකට ගැලපෙන නිසා දැනටමත් ලුහුබැඳ ඇති මාර්ග සොයා ගැනීම Git නතර නොකරනු ඇත . ෆෝල්ඩරයක් ඉවත් කරන්න ( rm ) දර්ශකයෙන් පමණක් ( --cached ) පුනරාවර්තන ( -r ) ක්‍රියාත්මක කරන්න. මූල බින් ෆෝල්ඩරය සඳහා විධාන රේඛා උදාහරණය:

git rm -r --cached bin

72
Git 1.8.2 සිට, git ලිපිගොනු වල පිළිගනු **ඇත .gitignore(මූලාශ්‍රය: 1.8.2 changelog )
කාලෝස් කැම්පර්ඩ්‍රස්

15
වන binඑකම bin/?
නිස්බා

29
Is නිස්බා, ඒවා වෙනස් ය, binබින් නම් ගොනු නොසලකා හරිනු ඇති අතර, බින් bin/නම් වූ නාමාවලි සඳහා වේ
රාණි කෙයර්

8
මම මේ මත වැටී ඇති බැවින්: git-command හි ෆෝල්ඩරයේ නම කේස් සංවේදීයි :) "බින්! = බින්" - සමහර විට මම මෙම ඉඟියෙන් මිනිත්තු කිහිපයක් ඉතිරි කරමි :)
dba

1
Windows10 ඔබ ඔබ gitignore.txt නිර්මාණය හා පසුව මෙම ගොනුව නිර්මාණය කිරීමට කඩිනම් විධානය Ren gitignore.txt .gitignore ක්රියාත්මක කිරීමට ඇති අතර, .gitignore ගොනු නිර්මාණය කළ නොහැක
පට්ටා

468

මෙම .gitignoreඔබේ සිහින වල බව පෙනේ:

bin/

ඉහළ මට්ටමේ.


නොසලකා හරින ලද ලිපිගොනු පිරික්සීමට අමතක නොකරන්න උදව් කිරීමට ඔබට බොහෝම ස්තූතියි: git checkout bin *
Chris Sim

1
එය gitignore_global
μολὼν.λαβέ

Lex ඇලෙක්සැන්ඩර්, කෙනෙකුට බින් / නාමාවලි නොසලකා හැරීමට අවශ්‍ය ඇයි? ඔවුන් බොහෝ විට අනුවාදගත අන්තර්ගතයන් ඇත. ගෝලීය නොසලකා හැරීම ගබඩාවේ අනෙක් පරිශීලකයින්ට බලපාන්නේ නැත.
මයිකල් ක්‍රෙලින් - හැකර්

241

Git ආරම්භකයින් සඳහා සඳහන් කිරීම වටී යැයි මම සිතමි:

ඔබ සතුව දැනටමත් ගොනුවක් පිරික්සා ඇත්නම් සහ එය නොසලකා හැරීමට අවශ්‍ය නම්, ඔබ පසුව රීතියක් එකතු කළහොත් Git ගොනුව නොසලකා හරිනු නොලැබේ . එවැනි අවස්ථාවලදී, ඔබේ පර්යන්තය තුළ පහත දැක්වෙන විධානය ක්‍රියාත්මක කිරීමෙන් ඔබ මුලින්ම ගොනුව ඉවත් කළ යුතුය:

git rm --cached

සංස්කරණය කිරීමෙන් පසු ඔබේ දේශීය ගබඩාවේ (දැනටමත් පවතින) සමහර ඩිරෙක්ටරි නොසලකා හැරීමට ඔබට අවශ්‍ය නම් .gitignore ඔබට මෙය ඔබේ root dir මත ධාවනය කිරීමට අවශ්‍යය

git rm --cached -r .
git add .

එය මූලික වශයෙන් ඔබගේ දේශීය repo සහ වේදිකා නොසලකා හරින ලද ගොනු 'නැවුම්' කරයි.

බලන්න:

http://git-scm.com/docs/git-rm ,

https://help.github.com/articles/ignoring-files/


මම සාමාන්‍යයෙන් git add -Aමගේ කැපවීම් මත යමක් කරන්නේ නම්, ඒ වෙනුවට මට මෙය භාවිතා කළ හැකිද? මට පළමු පේළියේ තිත -A සමඟ ආදේශ කළ හැකිද?
ajax333221

69

මීට **පෙර කිසි විටෙකත් නිසි ලෙස ක්‍රියා නොකළ නමුත් git 1.8.2 (2013 මාර්තු 8) සිට එය පැහැදිලිව සඳහන් කර ඇති බව පෙනේ:

උප බහලුම් මට්ටම් 0 ක් හෝ වැඩි ගණනකට ගැලපෙන රටාවක් ලෙස.gitignore සහ .gitattributesගොනු වල රටා තිබිය හැකිය**/ .

උදා: " foo/**/bar" ගැලපේ " bar" " foo" තුළම හෝ " foo" උප බහලුමක .

ඔබගේ නඩුවේදී, එයින් අදහස් වන්නේ මෙම රේඛාවට දැන් සහය විය හැකි බවයි:

/main/**/bin/

46
[Bb]in/

ඉහළ සහ පහළ යන දෙකටම ගැලපේ


2
[B]in/එකම ඉහළ නඩුව වීමට
ගෑන්ක්

පමණක් ඉඩ ආකාරය Binෆෝල්ඩරය නොසලකා ඉඩ binGIT කිරීමට කැප? [B]in/කැපවීම Binසහ bin.
ගන්ක්

5
මෙය කළ යුතුය, @ ගෑන්ක්: Bin/ !bin/
මාකෝ ජී

35

එය මෙහි සඳහන් කර ඇති බවක් මා දුටුවේ නැත, නමුත් මෙය සිද්ධි සංවේදී බව පෙනේ. මම / බින් වෙත මාරු වූ පසු බලාපොරොත්තු වූ පරිදි ලිපිගොනු නොසලකා හරින ලදි.


3
මෙය මුල් ප්‍රශ්නයට පිළිතුරක් binනොවේ Bin.
සීබී බේලි

51
පිළිතුරක් නොවුවද, එකම කාරණය පිළිබඳව සොයන අනෙක් අයට එය සම්පූර්ණ කරයි (මා, දැන්).
ජේ

26

[Bb]in ගැටළුව විසඳනු ඇත, නමුත් ... මෙන්න ඔබ නොසලකා හැරිය යුතු දේවල් පිළිබඳ වඩාත් පුළුල් ලැයිස්තුවක් (GitExtension හි නියැදි ලැයිස්තුව):

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.sbr
obj/
[Rr]elease*/
_ReSharper*/

3
සටහන: මේ වගේ දේවල් ඔබගේ GLOBAL gitignore හි තිබිය යුතුය (සාමාන්‍යයෙන් ඔබේ නිවාස නාමාවලියෙහි.) ව්‍යාපෘති gitignore විසින් නොසලකා හැරිය යුත්තේ ඔබේ ව්‍යාපෘතියට විශේෂිත වූ දේ පමණි (එනම්. C යෙදුමක් සඳහා ලිපිගොනු.)
BraveNewCurrency

21

පියවර 1: .gitignore ගොනුවට පහත අන්තර්ගතය එක් කරන්න.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/

# Visual Studio 2015 cache/options directory
.vs/

පියවර 2: බලාත්මක වීමට වග බලා ගන්න

ගැටළුව තවමත් පවතී නම්, එයට හේතුව .gitignore හි සැකසීම් නොසලකා හැරිය හැක්කේ මුලින් සොයා නොගත් ගොනු පමණි . අනුවාද පාලන පද්ධතියට සමහර ලිපිගොනු දැනටමත් ඇතුළත් කර ඇත්නම්, .gitignore වෙනස් කිරීම අවලංගුය. මෙම ගැටළුව මුළුමනින්ම විසඳීම සඳහා, නිධිය මූල ෆෝල්ඩරයේ පහත දැක්වෙන විධානයන් ක්‍රියාත්මක කිරීම සඳහා ඔබ Git Bash හෝ Package Manager Console විවෘත කළ යුතුය (පහත තිර රුව බලන්න).

$ git rm -r --cached .
$ git add .
$ git commit -m 'Update .gitignore'

PM කොන්සෝලය එවිට ගැටළුව සම්පූර්ණයෙන්ම විසඳනු ඇත.


18

ඔබ .gitignoreඕනෑම දෘශ්‍ය ස්ටුඩියෝ (.NET) විසඳුමක් සඳහා විශිෂ්ට ගෝලීය ගොනුවක් සොයන්නේ නම් - මෙය භාවිතා කිරීමට මම ඔබට නිර්දේශ කරමි: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

AFAIK එය වඩාත් පුළුල් කර .gitignore.NET ව්යාපෘති සඳහා.


5
මෙය ඇත්ත වශයෙන්ම ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත, නමුත් එය හරියටම මා සොයන දෙයයි.
ඩේව්

9

වචනයේ පරිසමාප්ත අර්ථයෙන්ම කිසිවක් මට ප්‍රයෝජනවත් නොවීය. මට වැඩ කළ එකම එක (ලිනක්ස් මත):

**/bin
(yes without the / in the end)

git version 2.18.0 

binඋප නාමාවලිවල නම් කර ඇති සියලුම ෆෝල්ඩර නොසලකා හැර තිබේද?
vineeshvs

5

දැන්වීමක් ලෙස;

ඔබ සිතන්නේ නම් .gitignoreඑය කිසිසේත් ක්‍රියා නොකරයි (එබැවින් එහි foo/*ෆෝල්ඩරය එක් කළ නමුත් git statusඑම ෆෝල්ඩරයේ අන්තර්ගතය නවීකරණය කරන ලද හෝ මේ හා සමාන දෙයක් ලෙස පෙන්වයි), එවිට ඔබට මෙම විධානය භාවිතා කළ හැකිය;

git checkout -- foo/*


3

2.13.3 සහ ඊට පසුව, ඔබේ .gitignore ගොනුවේ බින් එකක් ලිවීමෙන් බඳුන සහ එහි සියලුම උප බහලුම් සහ ලිපිගොනු නොසලකා හැරිය යුතුය.

බින්


2

.Gitignore ගොනුවට ** / bin / එකතු කිරීම මට උපක්‍රමයක් විය (සටහන: බින් ෆෝල්ඩරය දර්ශකයට එකතු කර නැත).


1

ඇතුළත රටාව .gitignoreකප්පාදුවකින් අවසන් වුවහොත් /, එය සොයාගත හැක්කේ නාමාවලියක් සමඟ ගැලපීමක් පමණි.

වෙනත් වචන වලින් කිවහොත්, bin/නාමාවලියක් binහා එයට යටින් ඇති මාර්ග ගැලපෙනු ඇත, නමුත් සාමාන්‍ය ගොනුවකට හෝ සංකේතාත්මක සම්බන්ධකයකට නොගැලපේ bin.


රටාවේ කප්පාදුවක් නොමැති නම් , binGit හි මෙන් එය ෂෙල් ග්ලෝබ් රටාවක් ලෙස (කෑදර) සලකයි. එබැවින් වඩාත් සුදුසු වන්නේ සරල භාවිතා කිරීමයි /bin.

bin මෙම විශේෂිත ගැටලුවට හොඳම විසඳුම නොවනු ඇත.


ඔබ අදහස් කළේ 'අ' සමඟ ආරම්භ /කරන්නද?
vineeshvs

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.