Git සහ Dropbox එකට effectively ලදායී ලෙස භාවිතා කරනවාද?


1138

Git සහ Dropbox එකට effectively ලදායී ලෙස භාවිතා කරන්නේ කෙසේද ?



39
ඔබ කුඩා කණ්ඩායමක් නම් (5 ක් දක්වා), එවිට බිට්බකට් පුද්ගලික ගබඩාවන් සඳහා නොමිලේ සත්කාරකත්වය සපයයි. හාස්‍යයට කරුණක් නම්, මම යම් දෙයක් වැඩ කරන විට පරිගණක අතර චලනය වන විට ඩ්‍රොප්බොක්ස් හි මගේ දේශීය ගබඩාව තිබේ.
මාර්ක් ඇඩම්සන්

12
ඔබේ අනුවාද අතිරික්තය උත්ප‍්‍රාසාත්මක බව මට විශ්වාස නැත, නමුත් එය බොහෝ සෙයින් ප්‍රයෝජනවත් වේ
silasdavis

2
මෙම ප්‍රශ්නය අපැහැදිලි ය. මෙම මෙවලම් එකට “effectively ලදායී ලෙස” භාවිතා කිරීම යන්නෙන් අදහස් කරන්නේ කුමක්ද? එය ද ඉතා පුළුල් වන අතර, අදහස් දැක්වීමේ පිළිතුරු ජනනය කිරීමට ඉඩ ඇත.

3
හේයි ඔබට කරුණාකර මගේ පිළිතුර නිවැරදි එකක් ලෙස සලකන්න : stackoverflow.com/a/32215708/589667 . මගේ පිළිතුරේ මා සඳහන් කරන මෙම පුස්තකාලය ඩ්‍රොප්බොක්ස් සංවර්ධකයින් විසින් නිර්මාණය කරන ලද නිල මෙවලමකි.
clu

Answers:


1402

මම හිතන්නේ Git on Dropbox නියමයි. මම එය සෑම විටම භාවිතා කරමි. මා සතුව පරිගණක කිහිපයක් තිබේ (නිවසේ දෙකක් සහ වැඩ කරන ස්ථානයක) මම ඩ්‍රොප්බොක්ස් මධ්‍යම හිස් ගබඩාවක් ලෙස භාවිතා කරමි. මට එය පොදු සේවාවක සත්කාරකත්වය දැක්වීමට අවශ්‍ය නැති නිසාත්, මට සැමවිටම යා හැකි සේවාදායකයකට ප්‍රවේශයක් නොමැති නිසාත්, ඩ්‍රොප්බොක්ස් පසුබිම තුළ (ඉතා ඉක්මණින්) සමමුහුර්ත කිරීමෙන් මෙය බලා ගනී.

සැකසුම මේ වගේ දෙයක්:

~/project $ git init
~/project $ git add .
~/project $ git commit -m "first commit"
~/project $ cd ~/Dropbox/git

~/Dropbox/git $ git init --bare project.git
~/Dropbox/git $ cd ~/project

~/project $ git remote add origin ~/Dropbox/git/project.git
~/project $ git push -u origin master

එතැන් සිට, ඔබ ~/Dropbox/git/project.gitඔබේ ඩ්‍රොප්බොක්ස් ගිණුම සමඟ සම්බන්ධ වී ඇති බව ක්ලෝන කළ හැකිය (නැතහොත් මෙම නාමාවලිය මිනිසුන් සමඟ බෙදාගෙන ඇත), ඔබට සාමාන්‍ය Git මෙහෙයුම් සියල්ලම කළ හැකි අතර ඒවා ඔබගේ අනෙක් සියලුම යන්ත්‍ර සමඟ ස්වයංක්‍රීයව සමමුහුර්ත වේ.

මගේ තර්කනය සහ මගේ පරිසරය සකසා ගන්නා ආකාරය මත මම බ්ලොග් සටහනක්, අනුවාද පාලකය ( පැරණි සබැඳිය මියගොස් ඇත ) ලිවීය , එය මගේ රූබි ඔන් රේල්ස් සංවර්ධන අත්දැකීම් මත පදනම් වූවකි , නමුත් එය ඕනෑම දෙයකට යෙදිය හැකිය.


61
ඔබ එකවර යන්ත්‍ර දෙකකින් ඩ්‍රොප්බොක්ස් හිස් රෙපෝ වෙත තල්ලු කළහොත් කුමක් සිදුවේදැයි මම කල්පනා කරමි. එය git හි අභ්‍යන්තර ලිපිගොනු වල වෙනස් කිරීමට හේතු වේ නම්, ගැටුම් ඇති බව ඩ්‍රොප්බොක්ස් මඟින් පෙන්වනු ඇත - නමුත් ඔබ එසේ කරන්නේ කුමක් ද? අනුවාදයන්ගෙන් එකක් තෝරාගෙන යන්ත්‍ර දෙකෙන්ම නැවත තල්ලු කරන්න (එකින් එක)?
dubek

163
ub ඩුබෙක්: ඔබ බොහෝ විට හවුල් හිස් ගබඩාව දූෂණය කිරීම අවසන් කරයි. මෙම ප්‍රවේශය සුදුසු වන්නේ කුඩා කණ්ඩායමකට පමණි (මගේ නඩුවේ දෙදෙනෙකුට) මිනිසුන්ට ඔවුන්ගේ කුටි බිත්තිවලට ඉහළින් කෑ ගැසිය හැකිය: "ඒයි! කිසිවෙකු තල්ලු නොකරයි! මම දැන් තල්ලු කරමි!".
Ates Goral

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

75
මෙම නිශ්චිත විධාන අනුක්‍රමය භාවිතා කිරීම සඳහා මම පස් වතාවකට වඩා නැවත මෙම පිටුවට පැමිණ සිටිමි. මම ඒවා කිසි විටෙකත් කටපාඩම් නොකරමි, නමුත් ඒවා ලබා දීම ගැන ස්තූතියි!
ජෙරමි මැක්

32
O ජෝ: එය ප්‍රමාණවත් නොවේ.
අටෙස් ගෝරල්

132

මෙය කිරීමට නිවැරදි ක්‍රමය වන්නේ git-remote-dropbox භාවිතා කිරීමයි: https://github.com/anishathalye/git-remote-dropbox

ඩ්‍රොප්බොක්ස් හි ඔබේම රිපෝ එකක් සෑදීම ගැටලු රාශියක් ඇති කරයි. අනීෂ් (පුස්තකාලයේ නිර්මාතෘ) එය වඩාත් හොඳින් පැහැදිලි කරයි :

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

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

විසඳුම: මෙය නිසි ලෙස විසඳා ගත හැකිය. බහුවිධ පරිශීලකයින් සහ සමගාමී මෙහෙයුම් තිබියදීත්, Git with Dropbox භාවිතා කළ හැකි අතර සාම්ප්‍රදායික Git දුරස්ථයක් ලෙස එකම ආරක්ෂාව සහ අනුකූලතාව සහතික කළ හැකිය!

පරිශීලකයෙකු සඳහා, එය Git- ඩ්‍රොප්බොක්ස් අතර විනිවිද පෙනෙන ද්විපාර්ශ්වික පාලමක් ලෙස ක්‍රියා කරන සාම්ප්‍රදායික Git දුරස්ථයක සියලු සහතික පවත්වා ගෙන යන Git දුරස්ථ සහායක Git දුරස්ථ සහායක භාවිතා කිරීම තරම් සරල ය. හවුල් ෆෝල්ඩර සමඟ භාවිතා කිරීම පවා ආරක්ෂිතයි, එබැවින් එය සහයෝගීතාව සඳහා භාවිතා කළ හැකිය (අසීමිත සහයෝගිතාකරුවන් සමඟ අසීමිත පුද්ගලික ගබඩාවන්!).

දුරස්ථ සහායක සමඟ, ඩ්‍රොප්බොක්ස් Git දුරස්ථයක් ලෙස භාවිතා කළ හැකි අතර, Git clone, git pull, සහ git push වැනි සාමාන්‍ය Git විධානයන් දිගටම භාවිතා කළ හැකි අතර සියල්ල බලාපොරොත්තු වූ පරිදි ක්‍රියාත්මක වේ.


8
මෙම StackOverflow ප්‍රශ්නයේ යමෙකු git-remote-dropbox ගැන පළ කිරීම ගැන මම සතුටු වෙමි. මෙම ප්‍රතිචාරය ඉහළට සමීප කර ගැනීමට ක්‍රමයක් තිබේදැයි මම කල්පනා කරමි. දැනට පිළිගත් පිළිතුරෙන් නිර්දේශ කර ඇති ක්‍රමය තරමක් භයානක වන අතර එය නිධිය දූෂණයට හේතු විය හැක.
fwenom

1
ඒක නියමයි. මම අනිවාර්යයෙන්ම එය පරීක්ෂා කර බලමි. නමුත් මම එක් ඩිව් පෙට්ටියක සිට තවත් ස්ථානයකට මාරු වී, සමමුහුර්ත කරන ලද ගබඩාවක වැඩ කිරීමට අවශ්‍ය වූ විට, මෙම ක්‍රමය ක්‍රියාත්මක වන්නේ මා යන්ත්‍රය අතහැර ගිය විට මම සෑම විටම මගේ වැඩ කටයුතු කරගෙන ගියහොත් සහ මා නතර කළ ස්ථානය තෝරා ගැනීමට අවශ්‍ය නම් පමණි. යන්ත්‍රය B. මම හරිද? එසේ නම්, මෙය පරමාදර්ශී නොවේ, මන්ද එය "අන්තර්වාර" කොමිස් කඩාවැටීමකට තුඩු දෙනු ඇති අතර, කෙනෙකුට තර්ක කළ හැකි පරිදි, රෙපෝ හි කැපවීමේ ඉතිහාසය දූෂණය වනු ඇත. සමහර විට මට මගේ කේක් එක අරගෙන කන්නත් බැහැ!
bhu Boue vidya

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

2
@ ක්ලූ: ඔව්, ඔබ ඔබේ වැඩ කටයුතු කරගෙන තල්ලු කළ යුතුයි. Git-remote-dropbox කරන සියල්ලම git දුරස්ථ සහායකයකු ලෙස ක්‍රියා කරයි. වෙනත් දුරස්ථ කිරීම් මෙන්ම, තල්ලු කිරීමක් සිදු වන තුරු ඔබගේ දේශීය කොමිස් දුරස්ථයට තල්ලු නොවේ. දේශීයව නවීකරණය කරන ලද ලිපිගොනු දේශීය ගබඩාවට ගෙන ඒමට හැකි වන පරිදි ඒවා තල්ලු කළ හැකිය. ඩ්‍රොප්බොක්ස් ගබඩාවේ නොමැති ඔබගේ ලිපිගොනු ගැන කිසිවක් නොදන්නේ ය.
කුහුඹුවන්

2
Git-remote-dropbox හරස් වේදිකාවක් නම් කුතුහලයෙන් සිටින්න ... එය පයිතන් භාවිතා කරන බව මට පෙනේ, සහ ඩ්‍රොප්බොක්ස් සඳහා වෙනත් පයිතන් දේවල් හරස් වේදිකාවක් නොවන බව මම දනිමි , උදාහරණයක් ලෙස OS X හි විධාන රේඛා දේවල් නොගැලපේ.
මයිකල්

91

මෙම පිළිතුර බුධ මත පදනම් වේ අත්දැකීම් මිස Git නොවේ, නමුත් මෙම අත්දැකීම පවසන්නේ මේ ආකාරයට ඩ්‍රොප්බොක්ස් භාවිතා කිරීම දූෂිත ගබඩාවන් ඉල්ලා සිටින බවයි. විවිධ යන්ත්‍රවලින් එකම ඩ්‍රොප්බොක්ස් මත පදනම් වූ ගබඩාව විවිධ යන්ත්‍රවලින් යාවත්කාලීන කිරීමට ඔබට අවස්ථාවක් තිබේ නම් (මැක්, යුනික්ස්, වින්ඩෝස් මගේ නඩුවේ).

වැරදියට සිදුවිය හැකි දේවල් පිළිබඳ සම්පූර්ණ ලැයිස්තුවක් මා සතුව නැත, නමුත් මෙන්න මට තිත්ත වූ නිශ්චිත උදාහරණයක්. සෑම යන්ත්‍රයකටම රේඛීය-අවසන් අක්‍ෂර සහ ඉහළ / කුඩා අකුරු ගොනු නාම වලින් හසුරුවන ආකාරය පිළිබඳ සංකල්පයක් ඇත. ඩ්‍රොප්බොක්ස් සහ Git / Mercurial මෙය තරමක් වෙනස් ලෙස හසුරුවයි (මට නිශ්චිත වෙනස්කම් මතක නැත). ඩ්‍රොප්බොක්ස් විසින් Git / Mercurial ගේ පිටුපස, ප්‍රෙස්ටෝ, කැඩුණු නිධිය පිටුපස ඇති නිධිය යාවත්කාලීන කරන්නේ නම්. මෙය ක්ෂණිකව හා නොපෙනෙන ලෙස සිදු වේ, එබැවින් ඔබ එයින් යමක් ආපසු ලබා ගැනීමට උත්සාහ කරන තුරු ඔබේ ගබඩාව කැඩී ඇති බව ඔබ නොදනී.

මේ ආකාරයෙන් දේවල් කරන එක් අවුලකින් හාරා බැලීමෙන් පසු, මම පහත වට්ටෝරුව ඉතා සාර්ථක ලෙස භාවිතා කර ඇති අතර කිසිදු ගැටළුවක් නොමැත. ඔබේ ගබඩාව ඩ්‍රොප්බොක්ස් වලින් ඉවතට ගෙන යන්න. අනෙක් සියල්ල සඳහා ඩ්‍රොප්බොක්ස් භාවිතා කරන්න; ප්‍රලේඛනය, JAR ගොනු , ඔබ කැමති ඕනෑම දෙයක්. සහ භාවිතා GitHub (GIT) හෝ Bitbucketගබඩාව කළමනාකරණය (Mercurial) භාවිතා කරන්න. දෙකම නොමිලේ වන බැවින් මෙය පිරිවැයට කිසිවක් එකතු නොකරන අතර සෑම මෙවලමක්ම දැන් එහි ශක්තීන් සඳහා ක්‍රියා කරයි.

ඩ්‍රොප්බොක්ස් මුදුනේ Git / Mercurial ධාවනය කිරීමෙන් අවදානම හැර වෙන කිසිවක් එකතු නොවේ. එය නොකරන්න.


13
Git ගබඩාව දූෂිත නොවීමට තරම් ශක්තිමත් බව මට හැඟේ. මගේ අත්දැකීම (භාවිතයෙන් වසරකට වැඩි කාලයක්, බොහෝ විට තනි පරිශීලක, හරස් වේදිකා, හරස් පරිගණක, බහු ඩිවයිස්), git හි repo පහසුවෙන් දූෂිත නොවන බවයි. Git හි, තොරතුරු පමණක් ගබඩාවට එකතු කරනු ලැබේ, පවතින ලිපිගොනු කාලය 99.9% ක් පමණක් ඉතිරිව ඇත (විකෘති ලිපිගොනු බොහෝ දුරට අතින් පරීක්ෂා කිරීම පහසුය). ශාඛා දර්ශකයක් නැවත ලියන ලද අවස්ථා මම සමහර විට දැක ඇත්තෙමි, නමුත් මෙය පහසුවෙන් දැකිය හැකිය (එනම් "ශාඛාව (XXX හි ගැටුම්කාරී පිටපත)") සහ ඉවත් කර ඇත (සත්‍ය සවි කිරීමක් අවශ්‍ය නොවේ, ඇත්ත වශයෙන්ම).
එගොන්

1
ctc: ඔබ හරි, කසළ එකතු කිරීමේදී, ළඟා විය නොහැකි තොරතුරු git වලින් ඉවත් කරනු ලැබේ. කෙසේ වෙතත්, බොහෝ ප්‍රායෝගික අවස්ථාවන්හිදී මෙය ශක්තිමත්භාවයට හානියක් නොවන බව මම අනුමාන කරමි: සති 2 කට වඩා පැරණි තොරතුරු වෙත පමණක් ළඟා විය නොහැක (එය ඩ්‍රොප්බොක්ස් සමමුහුර්ත කිරීමට ප්‍රමාණවත් කාලයක් වේ). එවැනි ගැටුමක එම මොහොතේදී, බොහෝ තොරතුරු ඇසුරුම් කළ හා ඇසුරුම් නොකළ ආකාරයෙන් ලබා ගත හැකි යැයි මම සැක කරමි.
එගොන්

ඩ්‍රොප්බොක්ස් හි ඩිරෙක්ටරියට සමගාමීව යාවත්කාලීන කිරීම් නිසා කේන්ද්‍රීය රෙපෝ එකක් නොමැති කේත බෙදාගැනීමේ අවස්ථාව (පහත පිළිතුරකින් විස්තර කර ඇත) සිදුවිය හැකි දූෂණයෙන් එකක් බේරා ගනු ඇතැයි මම සිතමි . යමෙකුට කේන්ද්‍රීය ගබඩාවක් අවශ්‍ය නම්, එය වෙන වෙනම කළමනාකරණය කළ හැකිය (සහ ඩ්‍රොප්බොක්ස් වලින් පිටත); ඩ්‍රොප්බොක්ස් පුද්ගලික වැඩ කිරීමේ ගබඩාවන් රඳවා තබා ගනී (එයද පහසුය, මන්දයත් ඔබ වැඩ කරන පදනම් කරගත් ඔබේ කණ්ඩායමේ වෙනත් කෙනෙකුගේ ප්‍රභව ගබඩාවෙන් වරින් වර යාවත්කාලීන කිරීමට / අදින්නට හැකි බැවිනි). (මම ඇත්ත වශයෙන්ම එවැනි පසුබිමක
තාරාවන්

5
+1 ඔබේ ගබඩාවන් ප්‍රසිද්ධියේ සංග්‍රහ කිරීමට ඔබට අවශ්‍ය නැතිනම්, බිට්බකට් භාවිතා කරන්න , පරිශීලකයින් 5 ක් දක්වා කණ්ඩායම් සඳහා පුද්ගලික ගබඩාව නොමිලේ.
ක්‍රිස්ටියන් ස්පෙක්ට්

වින්ඩෝස් යන්ත්‍රයක් සහ ඕඑස්එක්ස් යන්ත්‍රයක් අතර මා දුටු එක් දෙයක් නම් ගොනු අවසරයන් එකිනෙකට වෙනස් ගැටළු ඇති කළ හැකිය. ඔබට මෙය භාවිතා කර Git හි අවසරයන් අක්‍රිය කළ හැකිය: "git config core.fileMode false"
devdrc

16

ඩ්‍රොප්බොක්ස් භාවිතා කරන කුඩා කණ්ඩායම් සම්බන්ධයෙන්:

ඩ්‍රොප්බොක්ස් හි එක් එක් සංවර්ධකයාට තමන්ගේම ලිවිය හැකි හිස් ගබඩාවක් තිබේ නම් එය වෙනත් සංවර්ධකයින් වෙත පමණක් ඇද ගත හැකි නම්, මෙය දූෂණ අවදානමක් නොමැතිව කේත බෙදා ගැනීමට පහසුකම් සපයයි!

එවිට ඔබට මධ්‍යගත 'ප්‍රධාන පෙළක්' අවශ්‍ය නම්, ඔබට එක් සංවර්ධකයෙකුට තමන්ගේම ගබඩාවෙන් ඒ සඳහා වන සියලු තල්ලු කළමණාකරනය කළ හැකිය.


1
ගොඩාක් නියමයි! තවද, බහුවිධ ලිවීම් වලින් රෙපෝ දූෂණය ආරක්ෂා කර ගැනීම සඳහා ඔබට පහසුවෙන් බහු ගබඩාවන් සාදා ඒවායේ .git ෆෝල්ඩර පමණක් සමමුහුර්ත කළ හැකිය! මොහොතකින් ඔබට අවශ්‍ය වන්නේ - අපේක්ෂිත සම්භවයෙන් ඇද ගැනීම පමණි! නියම P-to-P මිනිසා! විමධ්‍යගත ගිට් දර්ශනය ඔබට තේරෙනවා!
බ්‍රයන් හක්

16

මගේ සියලු ව්‍යාපෘති එක Git ගබඩාවක් යට තැබීමට මට අවශ්‍ය නොවීය, සෑම ව්‍යාපෘතියක් සඳහාම මෙම කේතය ක්‍රියාත්මක කිරීමට මට අවශ්‍ය නොවීය, එබැවින් මම ක්‍රියාවලිය ස්වයංක්‍රීය කරන Bash ස්ක්‍රිප්ට් එකක් සාදන ලදී . ඔබට එය එක් හෝ බහු බහලුම් මත භාවිතා කළ හැකිය - එබැවින් එයට මෙම ලිපියේ කේතය ඔබ වෙනුවෙන් කළ හැකිය, නැතහොත් එය එකවර විවිධ ව්‍යාපෘති වල කළ හැකිය.

#!/bin/sh
# Script by Eli Delventhal
# Creates Git projects for file folders by making the origin Dropbox. You will need to install Dropbox for this to work.

# Not enough parameters, show help.
if [ $# -lt 1 ] ; then

cat<<HELP
projects_to_git.sh -- Takes a project folder and creates a Git repository for it on Dropbox

USAGE:
    ./projects_to_git.sh file1 file2 ..

EXAMPLES:
    ./projects_to_git.sh path/to/MyProjectDir
        Creates a git project called MyProjectDir on Dropbox

    ./projects_to_git.sh path/to/workspace/*
        Creates a git project on Dropbox for every folder contained within the workspace directory, where the project name matches the folder name

HELP
    exit 0
fi

# We have enough parameters, so let's actually do this thing.

START_DIR=$(pwd)

# Make sure we have a connection to Dropbox
cd ~
if [ -s 'Dropbox' ] ; then
    echo "Found Dropbox directory."
    cd Dropbox
    if [ -s 'git' ] ; then
        echo "    Dropbox Git directory found."
    else
        echo "    Dropbox Git directory created."
        mkdir git
    fi
else
    echo "You do not have a Dropbox folder at ~/Dropbox! Install Dropbox. Aborting..."
    exit 0
fi

# Process all directories matching the passed parameters.
echo "Starting processing for all files..."
for PROJ in $*
do
    if [ -d $PROJ ] ; then
        PROJNAME=$(basename $PROJ)
        echo "  Processing $PROJNAME..."

        # Enable Git with this project.
        cd $PROJ
        if [ -s '.git' ] ; then
            echo "    $PROJNAME is already a Git repository, ignoring..."
        else
            echo "    Initializing Git for $PROJNAME..."
            git init -q
            git add .
            git commit -m "Initial creation of project." -q

            # Make the origin Dropbox.

            cd ~/Dropbox/git
            if [ -s $PROJNAME ] ; then
                echo "    Warning! $PROJNAME already exists in Git! Ignoring..."
            else
                echo "    Putting $PROJNAME project on Dropbox..."
                mkdir $PROJNAME
                cd $PROJNAME
                git init -q --bare
            fi

            # Link the project to the origin
            echo "    Copying local $PROJNAME to Dropbox..."
            cd $PROJ
            git remote add origin "~/Dropbox/git/$PROJNAME"
            git push -q origin master
            git branch --set-upstream master origin/master
        fi
    fi
done

echo "Done processing all files."
cd $START_DIR

15

Git සහ Dropbox භාවිතා කිරීම යා යුතු මාර්ගය යැයි මම නොසිතමි ... දෙකෙහිම ලක්ෂණ ගැන සිතා බලන්න:

Git:

  • මධ්යම ගබඩාවක් තබා ගැනීමට ඔබට ඉඩ සලසයි
  • ඔබේම වෙනස්කම් සමඟ ඔබේම ගබඩාවක් තබා ගැනීමට ඔබට ඉඩ සලසයි
  • මධ්යම ගබඩාවෙන් වෙනස්කම් යැවීමට සහ ලැබීමට ඔබට ඉඩ සලසයි
  • එකම ලිපිගොනු වෙනස් කිරීමට බහුවිධ පුද්ගලයන්ට ඉඩ දෙන අතර ඔවුන් ඒවා ඒකාබද්ධ කරයි හෝ එය කළ නොහැකි නම් ඒවා ඒකාබද්ධ කිරීමට ඔබෙන් ඉල්ලා සිටී
  • මධ්යම ගබඩාවට ප්රවේශ වීමට වෙබ් සහ ඩෙස්ක්ටොප් සේවාදායකයින් සිටී

ඩ්‍රොප්බොක්ස්:

  • සෑම දෙයක්ම මධ්යම ගබඩාවක තබා ගනී
  • සේවාදායකයේ ගොනු වල ඔබේම අනුවාදයන් තබා ගැනීමට ඔබට ඉඩ දෙයි
  • මධ්‍යම ගබඩාවෙන් වෙනස්කම් යැවීමට සහ ලැබීමට ඔබට බල කරයි
  • බහුවිධ පුද්ගලයින් එකම ලිපිගොනු වෙනස් කරන්නේ නම්, සිදු කළ පළමු ගොනුව පසුකාලීන කොමිස් සමඟ ප්‍රතිස්ථාපනය වන අතර කිසිදු ඒකාබද්ධ කිරීමක් සිදු නොවන අතර එය කරදරකාරී වේ (සහ අනිවාර්යයෙන්ම එහි විශාලතම අවාසිය)
  • මධ්යම ගබඩාවට ප්රවේශ වීමට වෙබ් සහ ඩෙස්ක්ටොප් සේවාදායකයින් සිටී.

ඔබගේ ලිපිගොනු කිහිපයක් බෙදා ගැනීම ගැන ඔබ කනස්සල්ලට පත්ව සිටී නම්, ඒවා කේතාංකනය නොකරන්නේ ඇයි? එවිට ඔබට ඩ්‍රොප්බොක්ස් හි විශාලතම වාසිය Git වෙත ලබා ගත හැකිය, එනම් පොදු සහ පෞද්ගලික ලිපිගොනු තිබීම ...


ඩ්‍රොප්බොක්ස් යනු මධ්‍යම රෙපෝ සඳහා හොඳ විකල්පයකි. හවුල් ෆෝල්ඩරයක තැබුවහොත් එය කණ්ඩායම් සඳහා පවා ක්‍රියා කරයි.
මැක්

1
ඔව්, නමුත් ඔබට git හි ඇති ඒකාබද්ධ කිරීමේ ලක්ෂණ නොමැත, ඇත්ත වශයෙන්ම යමෙකු ඔබගේ ගොනුව සංස්කරණය කරන්නේ නම් සහ ඔහු ඔබට පසුව ගොනුව සුරකිනවා නම්, ඔබ වෙබ් අතුරු මුහුණතට ගොස් බාගත නොකරන්නේ නම් ඔබේ වෙනස්කම් නැති වේ. පැරණි අනුවාදය (ඔබේ අනුවාදය).
කොයෝට් 21

8
මේක වැරදියි. ඩ්‍රොප්බොක්ස් ගැටුම් අත්හරින්නේ නැත. එය එක් සංස්කරණයක ගොනු නාමය හසුරුවන අතර අනෙක අඛණ්ඩතාව සඳහා භාවිතා කරයි. ඔබ කැමති නම් ඒවා අතින් ඒකාබද්ධ කළ හැකිය. එය හොඳ සම්මුතියක් වන අතර දත්ත නැති නොවේ. dropbox.com/help/36
අහන්න කැමැතියි

6
ඔව්, නමුත් මෙය කේතය පිළිබඳ වන බැවින්, ලිපිගොනු ඒකාබද්ධ කිරීම සඳහා ගත කරන කාලය අඩු නිසා මට නිෂ්පාදනය කළ හැකි කේත වැඩි වන අතර සාමාන්‍ය කේත පදනමක් තුළ එය ව්‍යාපෘති මානයන් අනුව එකවර ගැටුම් සිය ගණනක් විය හැකි අතර එය බියකරු සිහිනයක් වනු ඇත වින්මර්ජ් (හෝ ඒ හා සමාන දෙයක්) වැනි ඒකාබද්ධ කිරීමේ මෙවලමක ආධාරයෙන් පවා එකින් එක ඒකාබද්ධ කරන්න.
කොයෝට්

15

එය දැන් 2015 වන අතර, දින තුනකට පෙර, ඩ්‍රොප්බොක්ස් මත ආරක්ෂිතව git භාවිතා කිරීම සඳහා ඩ්‍රොප්බොක්ස් API v2 මත පදනම් වූ නව මෙවලමක් නිර්මාණය කර ඇත. එය ඩෙස්ක්ටොප් සේවාදායකයා භාවිතා කරනවාට වඩා API ට එරෙහිව ක්‍රියා කරන අතර හවුල් ෆෝල්ඩරයක සත්කාරකත්වය දරන ගබඩාවකට එකවර එකවර තල්ලු කිරීම නිවැරදිව හසුරුවයි.

වින්‍යාස කිරීමෙන් පසු, එය වෙනත් ඕනෑම git දුරස්ථයක් මෙන් හරියටම git දුරස්ථයක් සැකසීමට ඉඩ දෙයි.

git clone "dropbox::/path/to/repo"
git remote add origin "dropbox::/path/to/repo"

2
අළුත්ම දේවල් මුලින් සඳහන් කරන සුපිරි ත්‍රෙඩ් එකක් යටතේ ස්ටේක් එක්ස්චේන්ජ් හි ඇති බොහෝ ගිට්-ඩ්‍රොප්බොක්ස් ප්‍රශ්න සමහර මෝඩයන් ඒකාබද්ධ කරන්නේ නම් හොඳයි.
බ්ලෙයාර් හූටන්

9

සංකේතාත්මක දුරස්ථ උපස්ථ සඳහා මම මර්කුරියල් (හෝ Git) + TrueCrypt + Dropbox භාවිතා කරමි .

සිසිල්ම දෙය නම්, ඔබේ කේතයේ කුඩා කොටසක් ඔබ වෙනස් කරන්නේ නම්, ඩ්‍රොප්බොක්ස් මුළු TrueCrypt බහාලුම සමමුහුර්ත නොකරයි. සමමුහුර්ත කාලය වෙනස්වීම් ප්‍රමාණයට දළ වශයෙන් සමානුපාතික වේ. එය සංකේතනය කර තිබුණද, TrueCrypt + Dropbox සංයෝජනය මඟින් බ්ලොක් කේතාංකය + වාරණ මට්ටමේ සමමුහුර්තකරණය විශිෂ්ට ලෙස භාවිතා කරයි.

දෙවනුව, මොනොලිතික් සංකේතාත්මක බහාලුමක් ආරක්ෂාව පමණක් නොව, නිධිය දූෂණය වීමේ අවදානම ද අඩු කරයි .

අවවාදයයි: කෙසේ වෙතත්, ඩ්‍රොප්බොක්ස් ක්‍රියාත්මක වන විට කන්ටේනරය සවි නොකිරීමට ඔබ ප්‍රවේශම් විය යුතුය. විවිධ සේවාදායකයින් දෙදෙනෙකු බහාලුම් වෙත විවිධ අනුවාදයන් පරීක්ෂා කර බැලුවහොත් ගැටුම් නිරාකරණය කිරීම ද වේදනාවක් විය හැකිය. එබැවින්, එය ප්‍රායෝගික වන්නේ කණ්ඩායමක් සඳහා නොව උපස්ථ සඳහා එය භාවිතා කරන තනි පුද්ගලයෙකුට පමණි.

පිහිටුවීම:

  • Truecrypt බහාලුමක් සාදන්න (බහු ගිගාබයිට් හොඳයි)
  • Truecrypt මනාපයන් යටතේ, සලකුණු නොකරන්න preserve modification timestamp*.
  • ඩෑන් විසින් ඉහත සඳහන් කළ පරිදි repo එකක් සාදන්න ( https://stackoverflow.com/a/1961515/781695 )

භාවිතය:

  • ඩ්‍රොප්බොක්ස් වලින් ඉවත් වන්න
  • කන්ටේනරය සවි කරන්න, ඔබේ වෙනස්කම් තල්ලු කරන්න
  • පතන කොටුව ධාවනය කරන්න

PS preserve modification timestampගොනුව වෙනස් කර ඇති බවත් එය සමමුහුර්ත කළ යුතු බවත් පවසන ඩ්‍රොප් බොක්ස් පරීක්ෂා කිරීම. කන්ටේනරය සවි කිරීම මඟින් ඔබ එහි කිසිදු ගොනුවක් වෙනස් නොකළද කාලරාමුව වෙනස් කරන බව සලකන්න. එය සිදුවීමට ඔබට අවශ්‍ය නැතිනම්, ශබ්දය එලෙසම සවි කරන්නread-only


මැකෝස් සංකේතාත්මක .dmg ගොනු රූපයක් භාවිතා කරන්නේ නම් එය බොහෝ වෙනස් වනු ඇත, සමමුහුර්ත කාලය තවමත් වෙනස්කම් වලට සමානුපාතික වේ ද?
IBrum

@IBrum කණගාටුයි, මම එය .dmg ගොනුවක් සමඟ අත්හදා බැලුවේ නැත
පරිශීලක

7

මම ඩෑන් මැක්නෙවින්ගේ පිළිතුරට කැමතියි! මම දැන් Git සහ Dropbox එකට භාවිතා කරමි, මම මගේ .bash_profile හි අන්වර්ථ නාම කිහිපයක් භාවිතා කරමි, එබැවින් මගේ කාර්ය ප්‍රවාහය මේ ආකාරයෙන් පෙනේ:

~/project $ git init
~/project $ git add .
~/project $ gcam "first commit"
~/project $ git-dropbox

මේවා මගේ අන්වර්ථ නාමයන් ය:

alias gcam='git commit -a -m'
alias gpom='git push origin master'
alias gra='git remote add origin'
alias git-dropbox='TMPGP=~/Dropbox/git/$(pwd | awk -F/ '\''{print $NF}'\'').git;mkdir -p $TMPGP && (cd $TMPGP; git init --bare) && gra $TMPGP && gpom'

මම අන්තිමට අන්වර්ථයක් ලෙස භාවිතා නොකරමි, ඒ වෙනුවට ෂෙල් පිටපතක්. නැතිනම් මම මේකට ගොඩක් කැමතියි. අමුතු භාවිතය සඳහා අමතර ණය.
pauljohn32

6

අපි මෙම ක්‍රමය (ඩ්‍රොප්බොක්ස් හි හිස් ගබඩාවක් නිර්මාණය කිරීම) කොටස් ෆෝල්ඩරයක භාවිතා කරමු .

සංවර්ධකයින් කුඩා කණ්ඩායමකට එම සමමුහුර්ත ගබඩාවෙන් ඉවත් වී දේශීය ක්ලෝනයක් නිර්මාණය කළ හැකිය. වැඩ ඒකකය අවසන් වූ පසු, අපි නැවත ආරම්භයට තල්ලු කරමු.

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


81
කවුරුහරි ගූගල් රැල්ල භාවිතා කරනවාද?
ක්‍රිස්ටෝපර් ජොන්සන්

6

මම නිර්දේශිත ආකාරයෙන් මර්කරියල් භාවිතා කර ඇති අතර ඔබ පරිස්සම් වන්නැයි ඉල්ලා සිටිමි, විශේෂයෙන් ඕනෑම යන්ත්‍රයක් වෙනස් නම්. ඩ්‍රොප්බොක්ස් වේදිකාව අද්භූත ලිපිගොනු නඩුවේ ගැටළු ස්වයංසිද්ධව මතු වන බවට පැමිණිලි වලින් පිරී ඇත. එච්.ජී. (සහ මම සිතන්නේ) සාමාන්‍ය චෙක්පත්වලදී පැමිණිලි නොකරනු ඇති අතර පැමිණිලි නොකරන අතර දූෂණය ගැන ඔබ අසන්නේ දූෂිත රෙපෝවක් ගැන ඔබ පැමිණිලි කළ විට පමණක් එය සත්‍ය ලෙස භාවිතා කිරීමට උත්සාහ කරන විට පමණි. නරක ආරංචියක්. ගැටලුව සහ එහි ක්‍රියාකාරිත්වය පිළිබඳව මට වඩාත් නිශ්චිත විය හැකි යැයි සිතමි; මම තවමත් උත්සාහ කරන්නේ මෙම අවුලෙන් මිදීමටයි.



git විසින් සැලසුම් අනුව අනෙක් අයට වඩා දූෂණ පිළිබඳව පරීක්ෂා කරනු ලැබේ. එබැවින් එය සිදු වන්නේ කවදාදැයි ඔබ දැන ගනු ඇති අතර ගැටළුව නිවැරදි කළ හැකිය.
ඇන්ඩර්ස්

6

විවෘත මූලාශ්‍ර ව්‍යාපෘතියක් (හරස් වේදිකා [ලිනක්ස්, මැක්, වින්] ස්ක්‍රිප්ට් එකතුවක්) ඇත, එමඟින් නිධිය කළමණාකරණයේ සියලු අමිහිරි තොරතුරු අතලොස්සක් (3-4) විධාන සහිතව සිදු කරයි.

https://github.com/karalabe/gitbox/wiki

නියැදි භාවිතය:

$ gitbox create myapp
Creating empty repository...
Initializing new repository...
Repository successfully created.

$ gitbox clone myapp
Cloning repository...
Repository successfully cloned.

සාමාන්‍ය git භාවිතය පසු:

$ echo “Some change” > somefile.txt
$ git add somefile.txt
$ git commit –m “Created some file”
$ git push

සම්පූර්ණ විධාන යොමු සහ නිබන්ධන සඳහා ව්‍යාපෘති විකිය සහ අත්පොත් පරීක්ෂා කරන්න.


4

මම මගේ ගිතුබ් නොවන ගබඩාව ඩ්‍රොප්බොක්ස් මත ගබඩා කරමි. මා දිව ගිය එක් අවවාදයක් නැවත ස්ථාපනය කිරීමෙන් පසුව සමමුහුර්ත විය. ඩ්‍රොප්බොක්ස් විශාල ගොනු වෙත යාමට පෙර කුඩාම ගොනු බාගත කරයි. ඔබ රාත්‍රියේ ආරම්භ කර සති අන්තයෙන් පසු නැවත පැමිණෙන්නේ නම් ගැටළුවක් නොවේ :-)

මගේ නූල් - http://forums.dropbox.com/topic.php?id=29984&replies=6


4

දැන් 2014 දී මම වසර එකහමාරක පමණ කාලයක් තිස්සේ කිසිදු ගැටළුවක් නොමැතිව Git සහ Dropbox භාවිතා කරමි. සමහර කරුණු:

  • ඩ්‍රොප්බොක්ස් භාවිතා කරන මගේ සියලුම යන්ත්‍ර වින්ඩෝස්, විවිධ අනුවාද (7 සිට 8 දක්වා) + 1 මැක් මත ඇත.
  • මම නිධිය වෙනත් කෙනෙකු සමඟ බෙදා නොගනිමි, එබැවින් එය වෙනස් කිරීමට මම පමණක් වෙමි.
  • git push දුරස්ථ ගබඩාවකට තල්ලු කරයි, එවිට එය කවදා හෝ දූෂිත වුවහොත් මට එය පහසුවෙන් ලබා ගත හැකිය.
  • සමහර පුස්තකාල නිරපේක්ෂ ස්ථාන වෙත යොමු කර C:\Usersඇති mklink /D link targetනිසා මට අන්වර්ථයන් නිර්මාණය කිරීමට සිදුවිය.

3

ඩෑන් මැක්නෙවින්ගේ ඉහළම ඡන්දය දුන් පිළිතුරට මම කැමතියි. මම බොහෝ වාරයක් git විධාන අනුපිළිවෙලින් අවසන් කර පිටපතක් සෑදීමට තීරණය කළෙමි. ඉතින් මෙන්න එයයි:

#!/bin/bash

# Usage
usage() {
    echo "Usage: ${0} -m [ master-branch-directory ] -r [ remote-branch-directory ] [ project-name ]"
    exit 1
}

# Defaults
defaults() {
    masterdir="${HOME}/Dropbox/git"
    remotedir="${PWD}"
    gitignorefile="# OS generated files #\n\n.DS_Store\n.DS_Store?\n.Spotlight-V100\n.Trashes\nehthumbs.db\nThumbs.db"
}

# Check if no arguments
if [ ${#} -eq 0 ] ; then
    echo "Error: No arguments specified"
    usage
fi

#Set defaults
defaults

# Parse arguments
while [ ${#} -ge 1 ]; do
    case "${1}" in
        '-h' | '--help' ) usage ;;
        '-m' )
            shift
            masterdir="${1}"
            ;;
        '-r' )
            shift
            remotedir="${1}"
            ;;
        * )
            projectname="${1##*/}"
            projectname="${projectname%.git}.git"
            ;;
    esac
    shift
done

# check if specified directories and project name exists
if [ -z "${projectname}" ]; then
    echo "Error: Project name not specified"
    usage
fi

if [ ! -d "${remotedir}" ]; then
    echo "Error: Remote directory ${remotedir} does not exist"
    usage
fi

if [ ! -d "${masterdir}" ]; then
    echo "Error: Master directory ${masterdir} does not exist"
    usage
fi

#absolute paths
remotedir="`( cd \"${remotedir}\" && pwd )`"
masterdir="`( cd \"${masterdir}\" && pwd )`"

#Make master git repository
cd "${masterdir}"
git init --bare "${projectname}"

#make local repository and push to master
cd "${remotedir}"
echo -e "${gitignorefile}" > .gitignore # default .gitignore file
git init
git add .
git commit -m "first commit"
git remote add origin "${masterdir}/${projectname}"
git push -u origin master

#done
echo "----- Locations -----"
echo "Remote branch location: ${remotedir}"
echo "Master branch location: ${masterdir}"
echo "Project Name: ${projectname}"

ස්ක්‍රිප්ටයට අවශ්‍ය වන්නේ ව්‍යාපෘති නාමයක් පමණි. එය ~/Dropbox/git/නිශ්චිත නාමය යටතේ git ගබඩාවක් ජනනය කරනු ඇති අතර වත්මන් නාමාවලියෙහි සම්පූර්ණ අන්තර්ගතය අලුතින් සාදන ලද මූලාරම්භක ශාඛාව වෙත තල්ලු කරනු ඇත. එක් ව්‍යාපෘති නාමයකට වඩා ලබා දී ඇත්නම්, නිවැරදි-වඩාත්ම ව්‍යාපෘති නාම තර්කය භාවිතා කරනු ඇත.

විකල්පයක් ලෙස, -r විධාන තර්කය මඟින් දුරස්ථ ශාඛාව නියම කරන අතර එය මූලාරම්භක මාස්ටර් වෙත තල්ලු වේ. ව්යාපෘති සම්භවයක් ඇති මාස්ටර්ගේ පිහිටීම -m තර්කය සමඟ ද නියම කළ හැකිය. පෙරනිමි .gitignore ගොනුවක් දුරස්ථ ශාඛා නාමාවලියෙහි ද තබා ඇත. ඩිරෙක්ටරිය සහ .gitignore ගොනු පෙරනිමි විධානාවලියෙහි දක්වා ඇත.


3

තවත් ප්‍රවේශයක්:

වඩාත් ජනප්‍රිය වන an ඩෑන් පිළිතුර ඇතුළුව මේ දක්වා ඇති සියලුම පිළිතුරු, ගිතුබ් , බිට්බකට් වැනි උපකරණ සඳහා යොමු කර ඇති සේවාවක් භාවිතා කරනවා වෙනුවට හවුල් ගබඩාවක් කේන්ද්‍රගත කිරීම සඳහා ඩ්‍රොප්බොක්ස් භාවිතා කිරීමේ අදහස ආමන්ත්‍රණය කරයි.

එහෙත්, මුල් ප්‍රශ්නයේ “Git සහ Dropbox එකට effectively ලදායී ලෙස” භාවිතා කිරීම යන්නෙන් අදහස් කරන්නේ කුමක්ද යන්න නිශ්චිතව දක්වා නැති හෙයින්, අපි තවත් ප්‍රවේශයක් මත වැඩ කරමු: “වැඩපොළ පමණක් සමමුහුර්ත කිරීමට Dropbox භාවිතා කිරීම.”

මෙම පියවරයන් කෙසේද:

  1. ව්‍යාපෘති නාමාවලිය තුළ යමෙක් හිස් .gitනාමාවලියක් නිර්මාණය කරයි (උදා mkdir -p myproject/.git)

  2. .gitඩ්‍රොප්බොක්ස් හි නාමාවලිය සමමුහුර්ත කරන්න . ඩ්‍රොප්බොක්ස් යෙදුම භාවිතා කරන්නේ නම්: මනාපයන්, සමමුහුර්තකරණය වෙත ගොස් "සමමුහුර්ත කිරීම සඳහා ෆෝල්ඩර තෝරන්න", එහිදී .gitනාමාවලිය සලකුණු නොකල යුතුය. මෙය .gitනාමාවලිය ඉවත් කරයි .

  3. ලකුණු git initව්යාපෘතිය නාමාවලියේ

එය ද ක්‍රියාත්මක වේ .git දැනටමත් තිබේ , පසුව පියවර 2 පමණක් කරන්න. ඩ්‍රොප්බොක්ස් විසින් වෙබ් අඩවියේ ඇති git ගොනු වල පිටපතක් තබා ගනී.

පියවර 2 මඟින් ඩ්‍රොප්බොක්ස් මඟින් git පද්ධති ව්‍යුහය සමමුහුර්ත නොකිරීමට හේතු වනු ඇත, එය මෙම ප්‍රවේශය සඳහා අපේක්ෂිත ප්‍රති come ලය වේ.

යමෙක් මෙම ප්‍රවේශය භාවිතා කරන්නේ ඇයි?

  • තවම තල්ලු නොකළ වෙනස්කම් වලට ඩ්‍රොප්බොක්ස් උපස්ථයක් ඇති අතර ඒවා උපාංග හරහා සමමුහුර්ත වේ.

  • නඩුවේ නාමාවලි එකක් ඉස්කුරුප්පු උපාංග අතර සමමුහුර්ත විට, යම් දෙයක් අත git statusහා git diffදේවල් නිරාකරණය කිරීමට ප්රයෝජනවත් වනු ඇත.

  • එය ඩ්‍රොප්බොක්ස් ගිණුමේ ඉඩ ඉතිරි කරයි (මුළු ඉතිහාසයම එහි ගබඩා නොවේ)

  • @ ඩෑන් ගේ පිළිතුර පිළිබඳ අදහස් දැක්වීමේදී ud ඩුබෙක් සහ te ඒට්ස් විසින් මතු කරන ලද ගැටළු සහ තවත් පිළිතුරකින් ක්ලූ විසින් දක්වන ලද ගැටළු එයින් වළක්වයි .

වෙනත් තැනක දුරස්ථයක පැවැත්ම (ගිතුබ්, ආදිය) මෙම ප්‍රවේශය සමඟ හොඳින් ක්‍රියා කරයි.

විවිධ ශාඛා මත වැඩ කිරීම ගැටළු කිහිපයක් ගෙන එයි, ඒවා ගැන සැලකිලිමත් විය යුතුය:

  • එක් විභව ගැටළුවක් වන්නේ විවිධ ශාඛා පරික්ෂා කිරීමේදී ඩ්‍රොප්බොක්ස් (අනවශ්‍ය ලෙස?) බොහෝ ලිපිගොනු සමමුහුර්ත කිරීමයි.

  • ඩ්‍රොප්බොක්ස් සමමුහුර්ත උපාංග දෙකක් හෝ වැඩි ගණනක් විවිධ ශාඛා පරික්ෂා කර ඇත්නම්, උපාංග දෙකටම සිදු නොවූ වෙනස්කම් නැතිවිය හැකිය,

මෙම ගැටළු මඟහරවා ගත හැකි එක් ක්‍රමයක් නම් git worktreeශාඛා පිරික්සුම් වෙනම නාමාවලිවල තබා ගැනීමයි.


අනුවාද පාලනයට හොඳ යැයි සිතිය හැකි ලිපිගොනු වල වැඩ කරන අයෙකු ලෙස, අයිපෑඩ් මත සංස්කරණය කළ හැකි (ඩ්‍රොප්බොක්ස් සමමුහුර්තකරණය හරහා), මෙම පිළිතුර එම භාවිත අවස්ථාව ආවරණය කරයි.
වැගරි

1
ඉක්මන් පසු විපරම, වත්මන් ඩ්‍රොප්බොක්ස් හැසිරීම වෙනස් වේ. ඩ්‍රොප්බොක්ස් සමමුහුර්ත නොකරන ලෙස සරලව ඉවත් කිරීම සහ පැවසීම යන්නෙන් අදහස් වන්නේ ප්‍රතිවිරුද්ධ දෙයයි, වලාකුළෙහි රැඳී සිටීම, දේශීයව ඉවත් කිරීම. නමුත් විසඳුමක් සහිත සුපිරි පරිශීලක පිළිතුරක් තිබේ. superuser.com/a/1527145/109561 මගේ නඩුවේ (මැක්හි) නොසලකා හැරීම සඳහා පහත දැක්වෙන ගොනුව සලකුණු කරයි , xattr -w com.dropbox.ignored 1 /path/to/somewhere.
වැගරි

3

මගේ ශත 2 සඳහා ඩ්‍රොප්බොක්ස් මඟින් මධ්‍යම භාවිතය සඳහා සත්කාරක සමාගමක් ලබා ගැනීමට කරදර වීමට අවශ්‍ය නැති තැන පුද්ගලික භාවිතය සඳහා පමණක් යොදා ගනී. ඕනෑම වෘත්තීය සංවර්ධනයක් සඳහා ඔබ විසඳීමට වඩා ගැටලු ඇති කරනු ඇත, දැනටමත් ත්‍රෙඩ් එකේ කිහිප වතාවක්ම සඳහන් කර ඇති පරිදි, ඩ්‍රොප්බොක්ස් මෙම භාවිත අවස්ථාව සඳහා නිර්මාණය කර නැත. තෙවන පාර්ශවීය ප්ලගීන හෝ මෙවලම් නොමැතිව ඩ්‍රොප්බොක්ස් මත ගබඩාවන් බැහැර කිරීම සඳහා පරිපූර්ණ ආරක්ෂිත ක්‍රමයක් වන්නේ මිටි භාවිතා කිරීමයි. .gitconfigටයිප් කිරීම සුරැකීම සඳහා පහත සඳහන් අන්වර්ථයන් මා සතුව ඇත :

[alias]
        bundle-push = "!cd \"${GIT_PREFIX:-.}\" && if path=\"$(git config remote.\"$1\".url)\" && [ \"${path:0:1}\" = / ]; then git bundle create \"$path\" --all && git fetch \"$1\"; else echo \"Not a bundle remote\"; exit 1; fi #"
        bundle-fetch = "!cd \"${GIT_PREFIX:-.}\" && if path=\"$(git config remote.\"$1\".url)\" && [ \"${path:0:1}\" = / ]; then git bundle verify \"$path\" && git fetch \"$1\"; else echo \"Not a bundle remote\"; exit 1; fi #"
        bundle-new = "!cd \"${GIT_PREFIX:-.}\" && if [ -z \"${1:-}\" -o -z \"${2:-}\" ]; then echo \"Usage: git bundle-new <file> <remote name>\"; exit 1; elif [ -e \"$2\" ]; then echo \"File exist\"; exit 1; else git bundle create \"$2\" --all && git remote add -f \"$1\" \"$(realpath \"$2\")\"; fi #"

උදාහරණයක්:

# Create bundle remote (in local repo)
$ git bundle-new dropbox ~/Dropbox/my-repo.bundle
# Fetch updates from dropbox
$ git bundle-fetch dropbox
# NOTE: writes over previous bundle. Thus, roughly equivalent to push --force --prune --all
$ git bundle-push

2

මම ඒ හා සමාන ගැටලුවකට මුහුණ දී ඇති අතර ඒ සඳහා කුඩා පිටපතක් නිර්මාණය කර ඇත්තෙමි. අදහස නම් හැකි තරම් සරලව Git සමඟ Dropbox භාවිතා කිරීමයි. දැනට, මම ඉක්මනින් රූබි ක්රියාත්මක කර ඇත කේතය අතර, මම ඉක්මනින් තවත් එකතු කරමි.

ස්ක්‍රිප්ටයට ප්‍රවේශ විය හැකිය https://github.com/nuttylabs/box-git.


0

තෙවන පාර්ශවීය ඒකාබද්ධ කිරීමේ මෙවලම් භාවිතා නොකර, මට තත්වය ටිකක් වැඩි කර ඩ්‍රොප් බොක්ස් සහ ස්පයිඩර් ඕක් විත් Git වැනි වෙනත් වලාකුළු තැටි සේවා භාවිතා කළ හැකිය.

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

මෙම ගැටළුව වළක්වා ගැනීම සඳහා, මම කළේ:

  1. භාවිතා කරමින් එක් ගොනුවක මගේ git දර්ශකය බැඳ තබන්න git bundle create my_repo.git --all .
  2. ගොනු අධීක්ෂණය සඳහා ප්‍රමාදයක් සකසන්න, උදා: මිනිත්තු 5 ක්, ක්ෂණික වෙනුවට. මෙය ඩ්‍රොප්බොක්ස් වෙනසක් මධ්‍යයේ අර්ධ තත්වයක් සමමුහුර්ත කිරීමේ අවස්ථා අඩු කරයි. පියාසර කරන විට වලාකුළු තැටියේ ගොනු වෙනස් කිරීමේදීද එය බොහෝ සෙයින් උපකාරී වේ (ක්ෂණිකව ඉතිරි කිරීමේ සටහන් ගැනීමේ යෙදුම් වැනි).

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


0

මැකෝස් හි ඔබට ඩ්‍රොප්බොක්ස් නැවැත්විය හැකිය, ඔබේ වෙනස්කම් සිදු කර ඩ්‍රොප්බොක්ස් නැවත ආරම්භ කරන්න. මම පහත සංයෝජනය භාවිතා කරන අතර ඒ ගැන සෑහීමකට පත්වෙමි:

දෙකෙහිම (ඔබගේ දේශීය git කළමනාකරණය කළ ව්‍යාපෘති නාමාවලිය සහ ඩ්‍රොප්බොක්ස් හි පිහිටා ඇති ඔබේ දුරස්ථ git ගබඩාව) ස්වයංක්‍රීය ඇසුරුම් අක්‍රීය කිරීම සඳහා පහත විධානය ක්‍රියාත්මක කරන්න (ඩ්‍රොප්බොක්ස් සමමුහුර්ත කිරීමේ ප්‍රධාන ගැටළුව මෙයයි)

git config --global gc.auto 0

වරින් වර, ඩ්‍රොප්බොක්ස් අක්‍රීය කර ඇති නිධි සම්පීඩනය කරන්න. උදාහරණයක් ලෙස, මම මගේ යෙදුම්වල නව නිකුතුවන් කරන සෑම අවස්ථාවකම මගේ බැෂ්-බිල්ඩ්-ස්ක්‍රිප්ට් හි පහත සඳහන් දේ කරමි.

osascript -e "tell application \"Dropbox\" to quit"

# Compress local
git gc --prune=now; git repack -a -d

# Compress remote
REPOS_DIR_REMOTE=`git remote get-url --push origin`
cd "${REPOS_DIR_REMOTE}"
git gc --prune=now; git repack -a -d

osascript -e "tell application \"Dropbox\" to launch"
osascript -e "display notification with title \"Compress Done\""
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.