ගොනුවක් දර්ශකයට එකතු කළ විට එය කරන්නේ කුමක්දැයි බැලීමෙන් Git කරන්නේ කුමක්දැයි ඔබට දැනගත හැකිය. දර්ශකය පූර්ව කැපවීමක් වැනි ය. දර්ශකය කැපවීමෙන්, ඔබට දර්ශකයේ git checkoutතිබූ සියල්ල නැවත වැඩ කරන නාමාවලියට ගෙන ඒමට භාවිතා කළ හැකිය . ඉතින්, ඔබ දර්ශකයට සංකේතාත්මක සබැඳියක් එක් කළ විට Git කරන්නේ කුමක්ද?
සොයා ගැනීමට, පළමුව, සංකේතාත්මක සබැඳියක් සාදන්න:
$ ln -s /path/referenced/by/symlink symlink
Git තවමත් මෙම ගොනුව ගැන නොදනී. git ls-filesඔබේ දර්ශකය පරීක්ෂා කිරීමට ඔබට ඉඩ දෙයි ( -sමුද්රණයට statසමාන ප්රතිදානය):
$ git ls-files -s ./symlink
[nothing]
දැන්, සංකේතාත්මක සබැඳියේ අන්තර්ගතය දර්ශකයට එකතු කිරීමෙන් Git වස්තු ගබඩාවට එක් කරන්න. ඔබ දර්ශකයට ගොනුවක් එකතු කළ විට, Git එහි අන්තර්ගතය Git වස්තු ගබඩාවේ ගබඩා කරයි.
$ git add ./symlink
ඉතින්, එකතු කළේ කුමක්ද?
$ git ls-files -s ./symlink
120000 1596f9db1b9610f238b78dd168ae33faa2dec15c 0 symlink
හැෂ් යනු Git වස්තු ගබඩාවේ නිර්මාණය කරන ලද ඇසුරුම් කරන ලද වස්තුව පිළිබඳ සඳහනකි. .git/objects/15/96f9db1b9610f238b78dd168ae33faa2dec15cඔබේ ගබඩාවේ මුල දෙස බැලුවහොත් ඔබට මෙම වස්තුව පරීක්ෂා කළ හැකිය . Git ගබඩාවේ ගබඩා කරන ගොනුව මෙයයි, ඔබට පසුව පරීක්ෂා කළ හැකිය. ඔබ මෙම ගොනුව පරීක්ෂා කළහොත්, එය ඉතා කුඩා බව ඔබට පෙනෙනු ඇත. එය සම්බන්ධිත ගොනුවේ අන්තර්ගතය ගබඩා නොකරයි.
(සටහන 120000යනු ls-filesප්රතිදානයේ ලැයිස්තුගත කර ඇති ප්රකාරයයි. එය 100644සාමාන්ය ගොනුවකට සමාන වේ.)
නමුත් ඔබ මෙම වස්තුව නිධියෙන් සහ ගොනු පද්ධතියට පරීක්ෂා කර බැලීමේදී Git කරන්නේ කුමක්ද? එය core.symlinksවින්යාසය මත රඳා පවතී . සිට man git-config:
core.symlinks
සාවද්ය නම්, සංකේතාත්මක සබැඳි සබැඳි පෙළ අඩංගු කුඩා සරල ගොනු ලෙස පරීක්ෂා කරනු ලැබේ.
එබැවින්, ගබඩාවේ සංකේතාත්මක සබැඳියක් සමඟ, පිටවීමේදී ඔබට සම්පූර්ණ ගොනු පද්ධති මාර්ගයක් ගැන සඳහනක් සහිත පෙළ ගොනුවක් ලැබෙනු ඇත, නැතහොත් core.symlinksවින්යාසයේ වටිනාකම මත පදනම්ව නිසි සංකේතාත්මක සම්බන්ධකයක් ඇත.
කෙසේ හෝ සිම්ලින්ක් මඟින් යොමු කරන ලද දත්ත ගබඩාවේ ගබඩා නොවේ.
.gitignoreසිම්ලින්ක් ෆෝල්ඩරයක් නොවන ගොනුවක් ලෙස දකී.