.gitignore Git විසින් නොසලකා හරිනු ලැබේ


1531

මගේ .gitignoreගොනුව Git විසින් නොසලකා හරින බවක් පෙනේ - .gitignoreගොනුව දූෂිත විය හැකිද? Git අපේක්ෂා කරන්නේ කුමන ගොනු ආකෘතිය, පෙදෙසි හෝ සංස්කෘතියද?

මගේ .gitignore:

# This is a comment
debug.log
nbproject/

සිට ප්‍රතිදානය git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

මම කැමතියි debug.logසහ nbproject/එම untracked ගොනු ලැයිස්තුව පෙනී නැත.

මෙය නිවැරදි කිරීමට මා පටන් ගත යුත්තේ කොතැනින්ද?


60
ඔබගේ .gitignoreගොනුව භාවිතා කරන ANSIහෝ UTF-8කේතනය කරන බවට වග බලා ගන්න . එය වෙනත් දෙයක් භාවිතා කරන්නේ නම් Unicode BOM, Git හට ගොනුව කියවිය නොහැක.
ADTC

8
@ADTC මෙය හරියටම මගේ යන්ත්‍රයේ (වින්ඩෝස්) ගැටලුවයි. මම echo "file" > .gitignoreපවර්ෂෙල් හි භාවිතා කර ඇත, ගොනුවට UCS-2 කේතන ක්‍රමයක් තිබුණි!
MarioDS

7
git rm --cached debug.log nbproject/
ගයාන් වීරකුට්ටි

4
මෙහි පළමු අදහස් දැක්වීම මට පිළිතුරක් නොවන්නේ ඇයි
RedOrav

2
Att මාට්පාර්කින්ස් අහ් මම දැන් එය දකිමි, එතරම් සරල හා වැදගත් පිළිතුරක් විවරණයක් ලෙස තැන්පත් කර තිබීම හෝ ඇත්ත වශයෙන්ම පිළිගත් තැනැත්තා එහි පහළට පැමිණීම මට තවමත් පුදුමයකි. ස්තූතියි!
RedOrav

Answers:


3156

ඔබ මෙතෙක් ලිපිගොනු ලුහුබැඳ නොතිබුණද, ඔබ ඒවා එකතු කළ පසුව පවා Git හට ඒවා ගැන "දැන ගැනීමට" හැකි බව පෙනේ .gitignore.

අවවාදයයි: පළමුව ඔබේ වර්තමාන වෙනස්කම් කරන්න, නැතහොත් ඔබට ඒවා අහිමි වනු ඇත.

ඉන්පසු ඔබගේ Git ගබඩාවේ ඉහළ ෆෝල්ඩරයෙන් පහත විධානයන් ක්‍රියාත්මක කරන්න:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

8
මම "භාවිතය: git rm [විකල්ප] [-] <file> ..." මම "git rm -r --cached" උත්සාහ කළ විට මුද්‍රණය කර ඇත. එය වැදගත් නම්, වින්ඩෝස් සඳහා GitHub හි "මෙවලම්-> මෙහි කවචයක් විවෘත කරන්න" ක්ලික් කිරීමෙන් පසු මම පවර්ෂෙල් තුළ සිට Git භාවිතා කරමි.
සූන්ට්ස්

61
වින්ඩෝස් මත: git rm. -r --cached සහ git add.
බීච්හවුස්

90
ඔබගේ සියලු වෙනස්කම් මීට පෙර සිදු කිරීමට සැලකිලිමත් වන්න , එසේ නොමැතිනම් වෙනස් කළ සියලුම ලිපිගොනු වල පාලනය ඔබට අහිමි වනු ඇත !!
කොස්මින්

46
පළමු විවරණකරුවන් තිදෙනා අවසානයේ තිත මඟ හැරී ඇති බව පෙනේ. මෙයින් අදහස් කරන්නේ සෑම ගොනුවක්ම බවයි. "git -rm -r --cached." <- තිත සැලකිල්ලට ගන්න.
ක්‍රිස්ටෝෆ් ඩි ට්‍රොයර්

18
ඔබට කැපවීමට අවශ්‍ය නැතිනම්, ඔබේ වෙනස්වීම් රාක්කයට දැමීම වැඩ කිරීමකි: "git stash". ඉහත විධානයන් ක්‍රියාත්මක කරන්න. "git stash pop" ධාවනය කරන්න
අයිවන් වොරොෂිලින්

336

ඔබගේ .gitignoreගොනුවේ ඔබ කළ වෙනස්කම් Git නොදකින බවක් පෙනේ නම් , ඔබට පහත කරුණු පරීක්ෂා කිරීමට අවශ්‍ය වනු ඇත:

  • .gitignoreඔබගේ දේශීය ගොනුවට බාධා කළ හැකි ගෝලීය ගොනුවක් තිබිය හැකිය
  • ඔබ .gitignore ගොනුවකට යමක් එකතු කළ විට, මෙය උත්සාහ කරන්න:

    git add [uncommitted changes you want to keep] && git commit
    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"
    
  • ඔබ .gitignore ගොනුවකින් යමක් ඉවත් කළහොත් සහ ඉහත පියවර ක්‍රියා නොකරන්නේ නම්, ඉහත පියවර ක්‍රියාත්මක නොවන බව ඔබ දුටුවහොත්, මෙය උත්සාහ කරන්න :

    git add -f [files you want to track again]
    git commit -m "Refresh removing files from .gitignore file."
    
    // For example, if you want the .java type file to be tracked again,
    // The command should be:
    //     git add -f *.java
    

3
ඔබේ 3 වන පියවර එකතු කිරීම සඳහා “ඇලින්හුරුබාගේ පිළිතුර සංස්කරණය කළ හැකිද?
බෙන්ජ්

En බෙන්ජ් ඔබේ උපදෙස් වලට ස්තූතියි, මට අලින් හුරුබාගේ පිළිතුර හමු නොවීය, වෙනස කුමක්දැයි මම නොදනිමි, එබැවින් කරුණාකර මට කෙලින්ම කියන්න.
ifeegoo

2
පියවර 3 මට අවශ්‍ය දෙයයි. බොහෝ පිළිතුරු වලින් කියැවෙන්නේ අපට ඉවත් කිරීමට අවශ්‍ය ගොනුව ඉවත් කරන්නේ කෙසේද යන්නයි. ප්රතිවිරුද්ධ දෘෂ්ටි කෝණයට ස්තූතියි.
යෙං

මෙය ඔබට උපකාරී වේ යැයි සිතමු!
ifeegoo

මෙය ඔබට උදව් වනු ඇතැයි මම සතුටු වෙමි!
ifeegoo

201

ස්ථාවර. හරි, මම වින්ඩෝස් හි නොට්පෑඩ් හි .gitignore ගොනුව නිර්මාණය කළ අතර එය ක්‍රියා නොකරයි. මම ලිනක්ස් හි .gitignore ගොනුව බැලූ විට එය සංවිධානාත්මක උමතුවක් මෙන් පෙනුනි - සමහර විට නොට්පෑඩ් විසින් ASCII වෙනුවට යුනිකෝඩ් ලියා ඇති අතර 8-බිට් 8 වේ.

ඒ නිසා මම මගේ ලිනක්ස් පෙට්ටියේ ගොනුව නැවත ලිව්වා, මම එය නැවත වින්ඩෝස් වෙතට ඇද ගත් විට එය හොඳින් ක්‍රියාත්මක වේ! හුරේ!


78
නොට්පෑඩ් හි "සුරකින්න" සංවාදයේ "ANSI" කේතනය තෝරන්න. හෝ වඩා හොඳ, නිසි පෙළ සංස්කාරකයක් ලබා ගන්න - සියල්ලට පසු ඔබ ක්‍රමලේඛකයෙක් වේ :) ... මට "ක්‍රමලේඛකයාගේ නොට්පෑඩ්" නිර්දේශ කළ හැකිය, අනෙක් අය නොට්පෑඩ් ++ ට වැඩි කැමැත්තක් දක්වන අතර වචනාර්ථයෙන් තවත් සිය ගණනක් එහි ඇත.
0xC0000022L

2
හෙහෙයි, ඔව්, මම එය නෙට්බීන්ස් (එවකට භාවිතා කරමින් සිටි), සූර්යග්‍රහණය හෝ දෘශ්‍ය චිත්‍රාගාරය තුළ නිර්මාණය කළ යුතුව තිබුණි. මම එය විධාන රේඛාවෙන් ඇමතුවේ එයින් වෙනසක් සිදු නොවනු ඇතැයි සිතමිනි.
මැට් පාකින්ස්

8
මගේ ප්රශ්නය සමාන විය - මගේ .gitignore සමඟ UTF8 භාවිතා කරන ලදී ද්රව්ය ලේඛණය . BOM එකක් නොමැතිව එය UTF8 ලෙස සුරකින ලද අතර එය ඉන්ද්‍රජාලිකව වැඩ කිරීමට පටන් ගත්තේය.
ෆිල්

13
මෙය මගේ ගැටලුව ද විය. මම .gitignore ගොනුව "echo dirName> .gitignore" සමඟ නිර්මාණය කර ඇති නිසා වින්ඩෝස් "." සමඟ ආරම්භ වන ලිපිගොනු නිර්මාණය කිරීම එතරම් වේදනාවක් ගෙන දේ. මේ ආකාරයට සාදන ලද ගොනුවේ කේතන ක්‍රමය git මඟින් කියවිය නොහැකි වූ අතර එය ද්විමය ගොනුවක් ලෙස අර්ථ දැක්වීය. නොට්පෑඩ් ++ හි "එන්කෝඩින් -> යූටීඑෆ් -8" ක්ලික් කර, සුරකින්න, සිදු කර ඇත.
ලෝරා

4
පවර්ෂෙල් හි ලෝරාට සමාන ගැටළුවක් තිබුනේ නම් - ගොනුව පෙරනිමියෙන් UTF16 ලෙස සුරකින ලදි.
mrówa

115

ඔබේ ව්‍යාපෘතියට තවත් කැපවීමක් එකතු නොකර, එක් පේළියක් බලාපොරොත්තු වන පරිදි .gitignoreවැඩ කිරීමට ප්‍රමාණවත් වේ:

git rm -r --cached debug.log nbproject

මෙය ඔවුන් ගබඩාවෙන් ඉවත් කරනු ඇත, නමුත් තවමත් ඒවා භෞතිකව තබා ගන්න. සරල ඉංග්‍රීසියෙන්, එය ඔවුන් හා සම්බන්ධ වෙනස්කම් පිළිබඳ ඉතිහාසයක් මකා දමනු ඇති අතර, අනාගතයේ සිදු වන ඔවුන්ගේ වෙනස්වීම් නිරීක්ෂණය නොකරනු ඇත. ඔබට වඩා හොඳ පැහැදිලි කිරීමක් මෙහි සොයාගත හැකිය .


1
මට අවශ්‍ය ආකාරයටම වැඩ කළා - මා සතුව තිබුණේ ලිපිගොනු 1 ක් පමණි. මම එහි අන්තර්ගතය git rm -r --cached someFile.php
නොට්පෑඩ් තුළ සුරකින

@FMFF මෙය ගබඩාවෙන් ඉවත් කරනු ඇති නමුත් ඒවා භෞතිකව තබා ගත හැකිය, සරල ඉංග්‍රීසියෙන්, එය ඔවුන් හා සම්බන්ධ වෙනස්කම් පිළිබඳ ඉතිහාසයක් මකා දමනු ඇති අතර අනාගතයේ සිදු වන ඔවුන්ගේ වෙනස්වීම් නිරීක්ෂණය නොකරනු ඇත. වඩා හොඳ පැහැදිලි කිරීමක් ඔබට මෙහි සොයාගත හැකිය: stackoverflow.com/questions/37279654/…
H Aßdøµ

මට "මාරාන්තික: pathspec 'debug.log' කිසිදු ලිපිගොනුවකට නොගැලපේ"
මයිකල්

47

මෙම ගැටලුවට තවත් හේතුවක් වන්නේ ප්‍රකාශයට පෙර හිස් අවකාශ හෝ ටැබ් ය:

උදාහරණයක්:

# Be aware of the following:
 notWorkingIgnore.*
workingIgnore.*

පහත දැක්වෙන අදහස් දැක්වීමේදී පසුපස අවකාශයක් ද ගැටලුවක් විය හැකිය:

# Be aware of the following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace

11
පසුපස ඇති අවකාශය මගේ ගැටලුව වූ අතර එය සොයා ගැනීමට පවා උපක්‍රමශීලී ය.
amr

3
සුදු පැහැති අවකාශයේ ද ගැටලුවක් තිබුණි.
ට්‍රෙෆෙක්ස්

3
ඔව්, මෙහි ද එසේමය. ගොනු රටාවෙන් පසුව මට අදහස් ලිවිය හැකි යැයි මම සිතුවෙමි : *.txt # Tex files. නමුත් git තේරුම් ගනී: "දිගුව සමඟ ලිපිගොනු නොසලකා හරින්න txt "
ඇඩම් ලිබුනා

3
මගේ වචනය, මෙම ඉහළ 15 පිළිතුර සොයා ගැනීමට මට දින 2 ක් ගතවිය. මෙය තවත් සුදුසුයි.
fordcars

2
මට මාස ගණනාවක් තිස්සේ තිබූ ගැටලුවක් ඔබ විසඳුවා ... ස්තූතියි!
ආර්කලීස්

37

කේතනය කිරීම මම දුටුවෙමි .gitignore බලපෑමක් - ගොනුව යුනිකෝඩ් නම්, එය නොසලකා හරින ලදි, එය ASCII නම්, එසේ නොවේ.

ක්‍රියාවලිය:

  1. තත්වය සත්‍යාපනය කරන්න: PS> git status
  2. වෙත ශ්‍රිතයක් සාදන්න Get-FileEncoding
  3. පරීක්ෂණයේ .gitignoreකේතන ක්‍රමය:PS> Get-FileEncoding .gitignore
  4. කේතන ක්‍රමය ASCII ලෙස වෙනස් කරන්න :PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. තහවුරු කරන්න: PS> git status

5
1000 ක් මේ සඳහා ස්තූතියි. මම මගේ පද්ධතියේ .gitignore ගොනුව නිර්මාණය කරමින් සිටියේ පවර්ෂෙල් හරහා touch .gitignoreසහ echo ".db" >> .gitignoreමාර්ගය භාවිතා කරමිනි. echo ".db" >> .gitignore"ගොනු කේතීකරණය UCS-2 LE-BOM වෙත සැකසෙන බව මට පෙනී ගියේය, ASCII වෙත ඉක්මන් පරිවර්තනයක් සහ ගිටිග්නෝර් වැඩ කිරීමට පටන් ගත්තේය.
බී-රැඩ්

2
පියවර 2 සහ 3 මඟ හැරීමෙන් ඔබට උත්සාහ කළ හැකිය
අනිකෙට් බන්සාලි

32

අනෙක් විසඳුම් මෙන්ම, පළමුව කැපවී ඔබ කැමති බව දැන ගන්න නොවූ වෙනස්කම් නැති වන බව මතක තබා ගන්න.

මට මේ සමඟ වඩා හොඳ ප්‍රති results ල ලැබුණා:

git rm -r --cached .
git reset HEAD --hard
git status

තත්වයට දැන් නවීකරණය කරන ලද ලිපිගොනු කිසිවක් නොතිබිය යුතු බව සලකන්න.


2
මට මේ එක වැඩ කරන්නේ නැති නමුත් ifeegoo පිළිතුර වන්නේ
ෆැනි

21

මගේ නඩුවේ, එයට හේතුව ලිපිගොනු දැනටමත් ගබඩාවේ පවතින අතර මම එය නොසලකා හැරීමට උත්සාහ කරමි.

ගැටලුව විසඳීම සඳහා මා කළ දේ මේවා ය:

  • ලිපිගොනු තාවකාලික ෆෝල්ඩරයකට පිටපත් කරන්න
  • මගේ ව්‍යාපෘති ෆෝල්ඩරයෙන් ඒවා ඉවත් කරන්න.
  • එම ලිපිගොනු ගබඩාවෙන් ඉවත් කරන වෙනස්කම් සිදු කරන්න
  • එම ගොනු මගේ ව්‍යාපෘති ෆෝල්ඩරයට නැවත එක් කරන ලදි

ඒ වන විට, එම ලිපිගොනු වල මා විසින් කරන ලද වෙනස්කම් නොසලකා හරින ලදි.

මම හිතන්නේ ඔබට දැනටමත් ගබඩාවේ ඇති ගොනු නොසලකා හැරිය නොහැකිය.


මගේ නඩුවේදී, ඒවා දැනටමත් වේදිකා ගත කර ඇත. ඔබ යෝජනා කළ දේ කිරීමෙන් පසුව, කැපවීමට උත්සාහ කිරීම සහ ඒවා වේදිකා ගත කර ඉවත් කර ඇති බවට අනතුරු ඇඟවීම දැකීමෙන් පසුව පමණක් ගැටලුව එය බව මට වැටහුණි.
dudeNumber4

19

මෙහි ඇති සියලුම පිළිතුරු සැබවින්ම ක්‍රියාකාරී වේ. ඔබ ධාවනය කිරීමට පෙර .gitignore ගොනුව සෑදිය යුතුය git init. එසේ නොමැතිනම් gitඔබ එම ලිපිගොනු නොසලකා හැරිය යුතු බව කිසි විටෙකත් නොදැන සිටියි.

echo .idea/ >> .gitignore
git init

ඔබ දිනපතා සංවර්ධනය කරන්නේ නම්, ඔබේ පුරුද්දක් ලෙස නොසලකා හරින ලද ගොනු ඔබේ ~/.gitignore_globalගොනුවට එක් කරන ලෙස මම ඔබට උපදෙස් දෙමි . ඒ ආකාරයෙන්, git(එය ඔබගේ නිවසේ නාමාවලියේ ගොනු කිරීමේ සිට, "ඔබගේ පරිශීලක" යන අර්ථය) මේ වන විටත් ඔබ ගොනු කරන දැන සාමාන්යයෙන් නොසලකා හරින්න.


දෙවියන්ට ස්තූතියි ... අවසානයේ මට විසඳුමක්.
Dbl

~/.gitignore_globalවින්‍යාසගත කළ හැකි නමකි. git config --global core.excludesfileඔබට දැනටමත් ගොනුවක් අර්ථ දක්වා ඇත්දැයි බැලීමට පළමුව ධාවනය කරන්න . එසේ නොවේ නම් ධාවනය කරන්න git config --global core.excludesfile ~/.gitignore_global.
නූමෙනන්

ඔබ .gitignoreමුලින්ම නිර්මාණය නොකළේ නම් විසඳුමක් : ලුහුබැඳ ඇති ගොනුව නැවත නම් කරන්න. .gitignoreඑය අළුත් දෙයක් ලෙස යොදනු ඇත.
නූමනන්

16

ඔබ තැබූ නාමාවලියද බලන්න.gitignore .

එය ඔබේ ව්‍යාපෘතියේ මුල විය යුතුය :

./myproject/.gitignore

ඇතුළේ නැහැ

./myproject/.git/.gitignore

9

වින්ඩෝස් භාවිතා කරන්නන් සඳහා විශේෂයෙන්: ඔබ සතුව ලිපිගොනු ඉවත් කර ඇත්නම් සහ හැඹිලි ගොනු ඉවත් කිරීම / ඉවත් කිරීම ක්‍රියා නොකරයි. පවර්ෂෙල් විවෘත කර .gitignore ගොනුව UTF-8 කේතන ක්‍රමයට පරිවර්තනය කිරීමට උත්සාහ කරන්න:

$Myfile = Get-Content .\.gitignore`
$Myfile | Out-File -Encoding "UTF8" .gitignore

එම නාමාවලිය සඳහා .gitignore ගොනුව කේතනය කිරීම සඳහා ඔබ මෙය කළ යුත්තේ එක් වරක් පමණක් වන අතර, ගොනුව නිවැරදිව කේතනය කර ඇති බැවින්, අනාගතයේදී ඔබ ගොනුව සංස්කරණය කරන සෑම විටම එය ක්‍රියාත්මක විය යුතුය. .Gitignore ගොනුවක් සඳහා යූටීඑෆ් -8 නොවන කේතීකරණ කියවීමට GitHub නොපැමිණීම ඊට හේතුව බව මම විශ්වාස කරමි. මා දන්නා තරමින් වින්ඩෝස් සඳහා මෙම ගැටළුව තවමත් විසඳී නොමැත. එය ගනුදෙනුවක් තරම් විශාල නොවේ, එය ක්‍රියාත්මක නොවන විට නිදොස් කිරීම වේදනාවක් පමණි.


8

එය සමඟ තවත් ගැටළුවක් .gitignoreඇතිවිය හැකිය, විශේෂයෙන් වින්ඩෝස් පරිශීලකයෙකුට. ඔබ නම් කරන විට .gitignore(වැනි unity.gitignore) Git එයට කැමති නැත .

වින්ඩෝස් සිතන පරිදි ඔබට එය සැමවිටම නම් කිරීමට අවශ්‍ය වනු ඇත .gitignore, නැතහොත් .gitignore.වින්ඩෝස් ඔබ ගොනු නාමයක් නොමැතිව එය නැවත නම් කිරීමට උත්සාහ කරයි.


7

මම මේ ප්‍රශ්නයට පැටලුණා. මගේ .gitignore ගොනුවේ අන්තර්ගතය නොකැඩූ ගොනු ලැයිස්තුවේ දිගටම දක්නට ලැබුණි.

නොසලකා හැරීමේ ගොනුව නිර්මාණය කිරීම සඳහා මම මෙය භාවිතා කළෙමි:

echo "node_modules" > .gitignore

ද්විත්ව උපුටා දැක්වීම් මට ගැටලුව ඇති කළ බව පෙනේ. මම නොසලකා හරින ලද ගොනුව මකා දමා නැවත විධානය උපුටා දැක්වීම් නොමැතිව භාවිතා කළ අතර එය අපේක්ෂිත පරිදි ක්‍රියාත්මක විය. ගොනු කේතන ක්‍රම සමඟ පටලවා ගැනීමට මට අවශ්‍ය නොවීය. මම වින්ඩෝස් 10 යන්ත්‍රයක Cmder භාවිතා කරමි .

උදාහරණයක්:

echo node_modules > .gitignore

අමුතුයි, මෙම ප්‍රතිරාවය ප්‍රකාශය මා හට දේශීයව ඇති වූ ගැටළුවක් නිරාකරණය කර ඇති අතර එහිදී මම නොසලකා හරින ලද ගොනුවක් අහම්බෙන් මකා දමා නැවත ප්‍රතිනිර්මාණය කරන ලදී. කිසියම් හේතුවක් නිසා, මෙය මගේ නොසලකා හැරීමේ ගොනුව වෙනස් නොකළද, එය මගේ ගැටලුව විසඳීය.
පැට්‍රික්

6

මට නම් පෙර පිළිතුරු කිසිවක් ක්‍රියාත්මක වූයේ නැත. මට හමු .gitignoreවූ exclude.txtගොනුවට පෙළ පිටපත් කිරීමට සිදු විය

<Your-project-folder>\.git\info

අවසන් වූ පසු, ඔබගේ වෙනස් කිරීම් නැවුම් කරන්න, සහ සොයා නොගත් සියලුම ලිපිගොනු නැති වී යයි. සුපුරුදු පරිදි කැප වන්න.


6

මගේ ප්‍රශ්නය (OP යෝජනා කළ පරිදි) දූෂිත .gitignore ගොනුවකි. අනෙක් සියල්ල අසමත් වන තුරු එය එසේ යැයි මම විශ්වාස නොකළෙමි. වංචා දූෂණ වල පෙන්වන්නේ නැතvi , නමුත් .gitignore ගොනුව නොසලකා දැමීමට හේතු වූ ගොනු ආරම්භයේ මත බයිට් දෙකක් විය. මට නම්, මේවා දර්ශනය වූයේ මා ටයිප් කළ විට පමණි cat .gitignore, එයින් පෙන්නුම් කළේ:

��# Built application files
*.apk
*.ap_

# ...

මේවා එතැනින් අවසන් වූයේ කෙසේදැයි මට අදහසක් නැත, නමුත් ගොනුව නැවත ප්‍රතිනිර්මාණය කිරීම ගැටළුව විසඳීය. දූෂිත ගොනුව පිළිබඳ හෙක්ස් විශ්ලේෂණයක් පහත දැක්වේ:

user@dev ~/project/myproject $ xxd -b .gitignore
00000000: 11111111 11111110 00100011 00000000 00100000 00000000  ..#. .
00000006: 01000010 00000000 01110101 00000000 01101001 00000000  B.u.i.

2
එය UTF-8 කේතනය කළ ගොනුවක UTF-16 බයිට් ඇණවුම් සලකුණක් සේ පෙනේ. en.wikipedia.org/wiki/Byte_order_mark
jsageryd

6

මෙම රේඛාව අඩංගු .gitignore ගොනුවක් සමඟ මට මෙම ගැටළුව ඇතිවිය:

lib/ext/

ඇත්ත වශයෙන්ම, මෙම නාමාවලිය වෙනත් තැනක ඇති ෆෝල්ඩරයකට සංකේතාත්මක සබැඳියක් බව මට වැටහුණි:

ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb  6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

පේළියේ lib/ext/, Git ඇත්ත වශයෙන්ම ෆෝල්ඩරයක් සොයයි , නමුත් සංකේතාත්මක සබැඳියක් ගොනුවකි , එබැවින් මගේlib ෆෝල්ඩරය නොසලකා හරිනු නොලැබේ.

මගේ .gitignore ගොනුවේ ආදේශ lib/ext/කිරීමෙන් lib/extමම මෙය නිවැරදි කළෙමි.


5

මටත් මේ ප්‍රශ්නයම තිබුණා. මම විශ්වාස කරන්නේ මෙම ගැටළුව CR එදිරිව CR + LF විෂමතාවයක් බවයි. මම මගේ .gitignore හි CMD (වින්ඩෝස් 7 හි) සහ පහත දැක්වෙන විධානය භාවිතා කර දේවල් ගබඩා කර තැබුවෙමි.

නරක:

echo "file_to_be_ignored.py" >> .gitignore<br>
echo "*~" >> .gitignore

ආදිය.

ගැටළුව වූයේ නව රේඛා හඳුනා ගැනීම සඳහා මෙම විධානය මඟින් Git සඳහා නිවැරදි අන්තයේ සලකුණු තැබීම නොවේ (Git අනෙක අපේක්ෂා කරන විට CR හෝ CR + LF). Vim හි සෑම නව රේඛාවක්ම අතින් ප්‍රතිස්ථාපනය කිරීමෙන් මම ගැටළුව විසඳා ගත්තෙමි (Vim to thecue!) එය හොඳින් ක්‍රියාත්මක විය.

ඔබගේ .gitignore නොට්පෑඩ් ++ හෝ විම් (ඉතා මැනවින්) සංස්කරණය කිරීමට උත්සාහ කරන්න. ගොනුව නිවැරදිව සංයුති කර ඇති බවක් පෙනුනත්, නව රේඛා ප්‍රතිස්ථාපනය කිරීමට උත්සාහ කරන්න. ඒක අමුතුයි වගේ, මම දන්නවා, නමුත් ඒක මට වැඩ කළා. : ඩී


4

හරි, එබැවින් මගේ නඩුවේ පිළිගත් විසඳුම ක්‍රියාත්මක නොවූ අතර වැඩ කළ දේ මෙහි විස්තර කර ඇත:

විෂුවල් ස්ටුඩියෝ 2013 ඔබගේ .gitignore ගොනුව නොසලකා හරිනවාද?

කෙටියෙන්:

  • විෂුවල් ස්ටුඩියෝව වසන්න.
  • ඔබගේ .git ෆෝල්ඩරයට සංචාලනය කරන්න
  • මකන්න ms-persist.xml
  • විෂුවල් ස්ටුඩියෝ නැවත ආරම්භ කරන්න

4

දැනටමත් හොඳ පිළිතුරු කිහිපයක් ඇත, නමුත් මගේ තත්වය වෙහෙසකාරී විය. මම වින් 10 හි ස්ථාපනය කරන ලද පීඑල්එම් (නිෂ්පාදන ජීවන චක්‍ර කළමනාකරණය) මෘදුකාංගයක ප්‍රභවය සංස්කරණය කර පසුව තීරණය කළෙමි, "මම මෙය බොහෝ විට ගිට් රෙපෝ එකක් බවට පත් කළ යුතුව තිබුණි."

ඉතින්, හැඹිලි විකල්පය මට කෙලින්ම ක්‍රියා නොකරනු ඇත. ආරම්භක වැඩ රාශියක් කිරීමෙන් පසුව සහ වැඩ .gitignoreනොකිරීමෙන් පසුව මූලාශ්‍ර පාලනය එකතු කර ඇති වෙනත් අය සඳහා පළ කිරීම , නමුත් වැඩ පොකුරක් අහිමි වීමට ඔබ බිය වනු ඇත.git rm --cached .

!වැදගත්: මෙය ඇත්ත වශයෙන්ම මම "ව්‍යාපෘතියකට" ප්‍රමාද වැඩියෙන් එකතු කළ නිසා එය ඉතා විශාල වන අතර මගේ .gitignore නොසලකා හරින බවක් පෙනේ. මම කවදාවත් බැඳී නැහැ. මට මේකෙන් ඉවත් වෙන්න පුළුවන් :)

පළමුව, මම කළේ:

rm -rf .git
rm -rf .gitignore

එවිට, මගේ වෙනස්කම් පිළිබඳ පින්තූරයක් තිබිය යුතුය. නැවතත්, මෙය මම වෙනස්කම් සිදු කළ ස්ථාපන නිෂ්පාදනයක්. පිරිසිදු මාස්ටර් ශාඛාවේ පළමු කැපවීම සඳහා ප්‍රමාද වැඩියි. එබැවින්, වැඩසටහන එකතු කිරීමෙන් මම වෙනස් කළ දේ ලැයිස්තුවක් මට අවශ්‍ය විය> changed.log පහත සඳහන් දෙකටම :

පවර්ෂෙල්

# Get files modified since date.
Get-ChildItem -Path path\to\installed\software\ -Recurse -File | Where-Object -FilterScript {($_.LastWriteTime -gt '2020-02-25')} | Select-Object FullName

බාෂ්

# Get files modified in the last 10 days...
find ./ -type f -mtime -10

දැන්, පසුගිය දින දහය තුළ මා වෙනස් කළ දේ පිළිබඳ මගේ ලැයිස්තුවක් මා සතුව ඇත (කීම හැරෙන්නට මෙහි ඇති හොඳ පුරුදු වලට අපි නොයමු, ඔව්, මම මෙය මටම කළෙමි).

නව ආරම්භයක් සඳහා, දැන්:

git init .
# Create and edit .gitignore

මගේ වෙනස් කළ ලැයිස්තුව මගේ වර්ධනය වන .gitignore සමඟ සංසන්දනය කිරීමට මට සිදු විය, git statusමම එය වැඩි දියුණු කළ පරිදි ධාවනය වේ , නමුත් .gitignore හි මගේ සංස්කරණයන් මා යන විට කියවනු ලැබේ.

අවසාන වශයෙන්, මම අපේක්ෂිත වෙනස්කම් ලැයිස්තුවක් කරමි! මගේ නඩුවේ එය බොයිලර් ප්ලේට් - මෙම මෘදුකාංගයට එරෙහිව ඩිව් පද්ධතියක් ක්‍රියාත්මක කිරීම සඳහා විශේෂිත වූ එස්එම්එල් වින්‍යාසයන් සමඟ සමහර තේමාවන් වැඩ කරන අතර අනෙක් ඩිවෙස් සඳහා අල්ලා ගැනීමට සහ දායක වීමට මට රෙපෝවක් දැමීමට අවශ්‍යය ... මෙය අපගේ ප්‍රධාන ශාඛාව වනු ඇත, එබැවින් කැපවීම, තල්ලු කිරීම සහ අවසානයේ නව වැඩ සඳහා බ්රැන්චින් කිරීම!


3

අවධානය යොමු කළ යුතු එක් දෙයක් නම්: ඔබ ඔබේ .gitignore ගොනුව නිවැරදි රේඛා අවසානයන් සමඟ සුරකිනවාද?

වින්ඩෝස්:

ඔබ එය වින්ඩෝස් හි භාවිතා කරන්නේ නම්, ඔබ එය වින්ඩෝස් රේඛා අවසානය සමඟ සුරකිනවාද? සියලුම වැඩසටහන් පෙරනිමියෙන් මෙය නොකරනු ඇත; නොට්පෑඩ් ++ සහ බොහෝ පීඑච්පී සංස්කාරකවරුන් ලිනක්ස් රේඛා අවසානයට පෙරනිමියෙන් ගොනු ගොනු සේවාදායකයට අනුකූල වේ. මෙය පරීක්ෂා කිරීමට එක් පහසු ක්‍රමයක් නම් වින්ඩෝස් නොට්පෑඩ් හි ගොනුව විවෘත කිරීමයි. සෑම දෙයක්ම එක් පේළියක දිස්වන්නේ නම්, ගොනුව ලිනක්ස් රේඛා අවසානය සමඟ සුරකින ලදි.

ලිනක්ස්:

ලිනක්ස් පරිසරයක වැඩ කරන ගොනුව සමඟ ඔබට ගැටලුවක් තිබේ නම්, එමැක්ස් හෝ නැනෝ වැනි සංස්කාරකයකින් ගොනුව විවෘත කරන්න . මුද්‍රණය කළ නොහැකි අක්ෂර ඔබ දුටුවහොත්, ගොනුව වින්ඩෝස් රේඛා අවසානය සමඟ සුරකින ලදි.


3

මෙහි ඇති අනෙක් පිළිතුරු වලින් ආවරණය නොවන එක් උපක්‍රමයක් නම්, ඔබට මේ හා සමාන අදහස් තිබේ නම් .gitignore ගොනුව ක්‍රියා නොකරනු ඇත:

foo/bar # The bar file contains sensitive data so we don't want to make this public

එබැවින්, ඔබට එවැනි අදහස් තිබේ නම්, ඒවා මේ ආකාරයට වෙනස් කරන්න:

# The bar file contains sensitive data so we don't want to make this public
foo/bar

3

තවත් හේතුවක් විය හැකිය - Git සේවාදායකයින් එකවර ක්‍රියාත්මක වන අවස්ථා කිහිපයක් . උදාහරණයක් ලෙස, "git shell" + "GitHub Desktop" යනාදිය.


මෙය මට සිදු විය. මම ප්‍රධාන සේවාදායකයා ලෙස "GitHub Desktop" භාවිතා කළ අතර, එය නව .gitignore සැකසුම් කිහිපයක් නොසලකා හැරියේය: කැපවීමෙන් පසු බැඳීම:

  1. ඔබ යමක් කරන්න.
  2. ඊළඟට, බැඳෙන්න: එය .gitignore සැකසුම් නොසලකා හරියි. .Gitignore හි සඳහන් තාවකාලික ලිපිගොනු රාශියක් බැඳීමට ඇතුළත් වේ.
  3. Git හැඹිලිය හිස් කරන්න; .gitignore UTF-8 ද යන්න පරීක්ෂා කරන්න; ලිපිගොනු ඉවත් කරන්න → කැපවීම files ගොනු ආපසු ගෙනයන්න; එක් කැපවීමක් මඟ හරින්න - කිසිවක් උදව් කළේ නැත.

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

විසඳුම : බහු, සැඟවුණු Git සේවාදායකයින් දෙවරක් පරීක්ෂා කර වරකට එක් Git ග්‍රාහකයක් පමණක් භාවිතා කරන්න, විශේෂයෙන් Git හැඹිලිය ඉවත් කරන අතරතුර.


2

පහත දැක්වෙන විධානය මඟින් මීට පෙර Git හි සිදු කළ ෆෝල්ඩරය හෝ ගොනුව ඉවත් කරන්න. එවිට gitignore ගොනුව නිවැරදි ගොනු පිළිබිඹු කරයි.

    git rm -r -f "folder or files insides"

2

එය ඔබ විධානයකින් .gitignoreගොනුව සංස්කරණය කිරීමේ හැකියාවකි sudo. මට එකම ගැටලුවක් ඇති වූ අතර විධාන ක්‍රියාත්මක කරන අතරතුරේදී: git status"නොසලකා හැරිය යුතු" ගොනු මට තවමත් දැකගත හැකි විය.

nano .gitignoreඒ වෙනුවට සංස්කරණය කිරීමෙන් පසු sudo nano .gitignoreමට නිවැරදි පරාවර්තනය දැකිය හැකි විය.


2

echo "..." > .gitignoreවින්ඩෝස් හි පවර්ෂෙල් භාවිතා කරමින් මම .ගිටිග්නෝර් නිර්මාණය කර ඇත්තෙමි , මන්ද එය වින්ඩෝස් එක්ස්ප්ලෝරර් තුළ නිර්මාණය කිරීමට මට ඉඩ නොදේ.

මගේ නඩුවේ ගැටළුව නිර්මාණය කරන ලද ගොනුව කේතනය කිරීම වන අතර මම එය ANSI ලෙස වෙනස් කිරීමෙන් පසුව ගැටළුව විසඳා ඇත.


2

මටත් උබුන්ටු සම්බන්ධයෙන් එකම ප්‍රශ්නයක් ඇත, මම .gitignoreටර්මිනලයේ සිට නිර්මාණය කළ අතර එය මට වැඩ කරයි

touch .gitignore


2

.Gitignore නමින් පෙළ ලේඛනයක් මම වචනානුසාරයෙන් නිර්මාණය කර ඇති නිසා පතල ක්‍රියා නොකරයි

ඒ වෙනුවට, පෙළ ලේඛනයක් සාදන්න, එය නොට්පෑඩ් ++ හි විවෘත කර .gitignore ලෙස සුරකින්න

ඔබ එය සුරකින විට පහත වැටීමෙන් සියලුම වර්ග (*. *) තෝරා ගැනීමට වග බලා ගන්න.


නැතහොත් gitbash හි සරලව භාවිතා කරන්න touch .gitignore


1

ඔබ නොට්පෑඩ් ++ පරිශීලකයෙක් නම්, පහත සඳහන් දෑ කිරීමට උත්සාහ කරන්න:

Notepad ++ භාවිතයෙන් ඔබේ .gitignore ගොනුව විවෘත කර කරන්න:

මෙනු සංස්කරණය කරන්නEOL පරිවර්තනයවින්ඩෝස් ආකෘතියසුරකින්න .

git statusනැවත භාවිතා කිරීමට උත්සාහ කර එය ඔබට ප්‍රයෝජනවත් දැයි බලන්න.

මම සමාන ප්රශ්නයට පිළිතුරු පල කර ඇති මෙහි .


1

මට එය තවත් ගැටලුවක් විය. මගේ .gitignore ගොනුව සකසා ඇත්තේ නොසලකා හරින ලෙස මා පවසන දේවල් හැර අනෙක් සියල්ල නොසලකා හැරීම සඳහා ය. එවැනි:

/*
!/content/

දැන් මෙයින් පැහැදිලිවම අදහස් වන්නේ .gitignore ගොනුව නොසලකා හරින ලෙස මම Git ට පවසන බවයි. .Gitignore ගොනුව ලුහුබැඳ නොයන තාක් කල් එය ගැටළුවක් නොවීය. නමුත් යම් අවස්ථාවක දී මම .gitignore ගොනුවම කැප කළෙමි. මෙය පසුව .gitignore ගොනුව නිසි ලෙස නොසලකා හැරීමට හේතු විය.

එබැවින් තවත් එක් පේළියක් එක් කිරීමෙන් එය සවි කර ඇත:

/*
!/content/
!.gitignore

1

මගේ ගැටළුව වූයේ, "" කප්පාදුව සමඟ නොව වෙන් කිරීම උපුටා දැක්වීම් නොසලකා හැරීම සඳහා මම ලිපිගොනු ලිවීමයි.

මෙය ක්‍රියාත්මක නොවූ අතර git විසින් නොසලකා හරින ලදි:

"db.sqlite3"
"tdd_venv/"

මෙය ඉතා හොඳින් ක්‍රියාත්මක විය:

/db.sqlite3
/tdd_venv/

නොට්පෑඩ් ++ සමඟ කවුළු තුළ මගේ ගොනු කේතන ක්‍රමයද පරීක්ෂා කළෙමි. කේතීකරණය UTF-8 ලෙස සකසා ඇත.

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.