මෙය සිදුවීමට ඔබ බොහෝ විට කළ දේ:
ඔබ කුඩා වැඩසටහනක් කිරීමට ගිය විට මේ ආකාරයේ දෙයක් සිදු වේ. ඔබ මේ වන විටත් ක්රියාත්මක වෙමින් තිබූ දෙයක් වෙනස් කිරීමට සූදානම්ව සිටී, එබැවින් ඔබ ඔබේ මට්ටම -3 අක්ෂර වින්යාසය සදාකාලිකවම අහෝසි කළ හැකිය:
machine1:~/proj1> git init
ඔබ එකතු කිරීම / කැපවීම ආරම්භ කරයි. නමුත් පසුව , ව්යාපෘතිය වැඩිපුර සම්බන්ධ වීමට පටන් ගන්නා අතර ඔබට වෙනත් පරිගණකයකින් (ඔබේ නිවසේ පරිගණකය හෝ ලැප්ටොප් වැනි) වැඩ කිරීමට අවශ්යය, එබැවින් ඔබ එවැනි දෙයක් කරයි
machine2:~> git clone ssh://machine1/~/proj1
එය ක්ලෝන වන අතර සෑම දෙයක්ම හොඳින් පෙනේ, එබැවින් ඔබ ඔබේ කේතය මැෂින් 2 වෙතින් වැඩ කරයි.
ඉන්පසුව ... ඔබ ඔබේ කොමිස් මැෂින් 2 වෙතින් තල්ලු කිරීමට උත්සාහ කරන අතර ඔබට මාතෘකාව තුළ අනතුරු ඇඟවීමේ පණිවිඩය ලැබේ.
මෙම පණිවිඩයට හේතුව වන්නේ ඔබ ඇදගත් git repo යන්ත්රය 1 හි ඇති ෆෝල්ඩරය සඳහා පමණක් භාවිතා කිරීමට අදහස් කිරීමයි. ඔබට එයින් ක්ලෝන කළ හැකිය , නමුත් තල්ලු කිරීම ගැටළු ඇති කළ හැකිය. විවිධ ස්ථාන දෙකක කේතය කළමනාකරණය කිරීමේ “නිසි” ක්රමය යෝජනා කර ඇති පරිදි “හිස්” රෙපෝවකි. යන්තම් රෙපෝවක් නිර්මාණය කර ඇත්තේ එහි කිසිදු වැඩක් සිදු කිරීම සඳහා නොවේ, එයින් අදහස් කරන්නේ බහු ප්රභවයන්ගෙන් ලැබෙන කොමිස් සම්බන්ධීකරණය කිරීමයි. ඔබට පසුව .git ෆෝල්ඩරය හැර අනෙකුත් සියලුම ගොනු / ෆෝල්ඩර මකා දැමීමට ඉහළම ශ්රේණිගත පිළිතුර යෝජනා කරන්නේ මේ නිසා යgit config --bool core.bare true
.
ඉහළම ශ්රේණිගත පිළිතුර පැහැදිලි කිරීම: බොහෝ අදහස් දැක්වෙන්නේ "මම මැෂින් 1 වෙතින් .git නොවන ගොනු මකා නොදැමූ අතර මට තවමත් මැෂින් 2 වෙතින් කැපවීමට හැකි විය" වැනි ය. ඒක හරි. කෙසේ වෙතත්, එම අනෙකුත් ලිපිගොනු දැන් git repo වෙතින් සම්පූර්ණයෙන්ම "දික්කසාද" වී ඇත. එහි ගොස් උත්සාහ කරන්න git status
, ඔබ "මාරාන්තික: මෙම ක්රියාව වැඩ කරන ගසක ක්රියාත්මක කළ යුතුය" වැනි දෙයක් දැකිය යුතුය. ඒ නිසා, ගොනු මකා දැමීම සඳහා යෝජනාව machine2 කැමැත්ත සිදු එසේ නොවේ වැඩ ; එය එසේ වන්නේ ඔබ ව්යාකූල නොවී ගිට් තවමත් එම ලිපිගොනු ලුහුබඳිමින් සිටින බව සිතමිනි. නමුත්, මැෂින් 1 හි ඇති ගොනු මත වැඩ කිරීමට ඔබට අවශ්ය නම්, ගොනු මකා දැමීම ගැටළුවක් වේ, එසේ නොවේ ද?
ඉතින්, ඔබ ඇත්තටම කළ යුත්තේ කුමක්ද?
මැෂින් 1 සහ මැෂින් 2 මත වැඩ කිරීමට ඔබ කොපමණ ප්රමාණයක් සැලසුම් කර ඇත්ද යන්න මත රඳා පවතී ...
ඔබ මැෂින් 1 සිට සංවර්ධනය කර ඔබගේ සියලු සංවර්ධනය මැෂින් 2 වෙත ගෙන ගොස් තිබේ නම් ... ඉහළම ශ්රේණිගත පිළිතුරෙන් යෝජනා කරන දේ කරන්න:git config --bool core.bare true
ඉන්පසු, විකල්පයක් ලෙස, එම ෆෝල්ඩරයෙන් .git හැර අනෙකුත් සියලුම ගොනු / ෆෝල්ඩර මකා දමන්න. සොයා නොගත් අතර ව්යාකූලත්වයට හේතු විය හැක.
මැෂින් 2 හි ඔබගේ වැඩ කටයුතු එක් වරක් පමණක් වූවා නම්, ඔබට එහි සංවර්ධනය දිගටම කරගෙන යාමට අවශ්ය නොවේ නම් ... නම් එහෙනම් හිස් සෑදීමට කරදර නොවන්න; ftp / rsync / scp / etc. * 1 * යන්ත්රයේ ඇති ලිපිගොනු මුදුනේ * 2 * යන්ත්රයෙන්, * 1 * යන්ත්රයෙන් කැපවීම / තල්ලු කිරීම, ඉන්පසු යන්ත්රයෙන් ලිපිගොනු මකා දමන්න * 2 *. තවත් සමහරු ශාඛාවක් සෑදීමට යෝජනා කර ඇත, නමුත් මම සිතන්නේ ඔබ එක් වරකදී සිදු කළ යම් සංවර්ධනයක් වෙනත් යන්ත්රයකින් ඒකාබද්ධ කිරීමට අවශ්ය නම් එය ටිකක් අවුල් සහගත බවයි.
මැෂින් 1 සහ මැෂින් 2 යන දෙවර්ගයේම සංවර්ධනය දිගටම කරගෙන යාමට ඔබට අවශ්ය නම් ... එවිට ඔබ නිසි ලෙස දේවල් සකස් කළ යුතුය. ඔබට ඔබේ ගබඩාව හිස් තැනකට පරිවර්තනය කළ යුතුය, එවිට ඔබට වැඩ කිරීමට මැෂින් 1 හි ක්ලෝනයක් සෑදිය යුතුය . බොහෝ විට මෙය කිරීමට ඉක්මන්ම ක්රමය වන්නේ
machine1:~/proj1> git config --bool core.bare true
machine1:~/proj1> mv .git/ ../proj1.git
machine1:~/proj1> cd ..
machine1:~> rm -rf proj1
machine1:~> git clone proj1.git
machine1:~> cd proj1
ඉතා වැදගත්: ඔබ repo හි පිහිටීම proj1 සිට proj1.git වෙත ගෙන ගොස් ඇති නිසා, ඔබ මෙය machine2 හි .git / config ගොනුවේ යාවත්කාලීන කළ යුතුය . ඊට පසු, ඔබට යන්ත්ර 2 වෙතින් ඔබේ වෙනස්කම් සිදු කළ හැකිය. අවසාන වශයෙන්, මම මගේ හිස් ගස් මගේ වැඩ ගස් වලින් away ත්ව කේන්ද්රීය ස්ථානයක තබා ගැනීමට උත්සාහ කරමි (එනම් 'proj1.git' එකම මව් ෆෝල්ඩරයේ 'proj1' ලෙස නොතබන්න). ඒ හා සමාන දෙයක් කිරීමට මම ඔබට උපදෙස් දෙමි, නමුත් මට අවශ්ය වූයේ හැකි පියවර හැකි තරම් සරල ලෙස තබා ගැනීමටයි.