Git හි සිද්ධි සංවේදී පමණක් ගොනු නාම වෙනස් කිරීම් කරන්නේ කෙසේද?


1346

පළමු අකුර ප්‍රාග්ධනීකරණය කිරීමෙන් මම ලිපිගොනු කිහිපයක් වෙනස් කර Name.jpgඇත name.jpg. Git මෙම වෙනස්කම් හඳුනා නොගන්නා අතර මට ගොනු මකා දමා නැවත උඩුගත කිරීමට සිදු විය. ලිපිගොනු නාමවල වෙනස්කම් පරික්ෂා කිරීමේදී Git සිද්ධි සංවේදී විය හැකි ක්‍රමයක් තිබේද? මම ගොනුවේ කිසිදු වෙනසක් කර නැත.


5
මෙය නිවැරදි නොවේ නම්, Git ඇත්ත වශයෙන්ම වින්‍යාස සැකසීමක් ඇති අතර එය සිද්ධි සංවේදීතාව නොසලකා හරිනවාද නැද්ද යන්න පාලනය කරයි.

2
විය හැකි අනුපිටපත git නඩුව සංවේදී නොවේද?

6
Stackoverflow.com/a/24979063/6309 බලන්න : git 2.0.1 සිට සරල git mvකෘතියක්.
VonC


මෙම ලිපිය බලන්න. මට කැපවීමට හැකි වූ නමුත් පරාමිති ලෙස කිසිදු ගොනු මාර්ගයක් නොමැතිව git commit -m "msg" භාවිතා කිරීම. එය දර්ශකය යාවත්කාලීන කර ගොනුවේ පරීක්ෂා කර ඇත. [සබැඳිය] stackoverflow.com/questions/35790113/…
ARKS

Answers:


1565

ඔබට git mv භාවිතා කළ හැකිය :

git mv -f OldFileNameCase newfilenamecase

12
මෙය මට නොමැති විට 'ප්‍රභව නාමාවලිය හිස්' වේ
WiseStrawberry

8
මෙහි MacOS භාවිතා කිරීම (සිද්ධි-සංවේදී නොවන FS) සහ -f වැඩ කර ඇත!
ඉඟියට

50
මෑත සංස්කරණ වලදී, ඔබට තවදුරටත් -fධජය අවශ්‍ය නොවේ .
ජෝෂුවා පින්ටර්

8
සම්පූර්ණ ගොනු මාර්ගය ලබා දීමට අමතක නොකරන්න. නිසැකවම, මම දනිමි, නමුත් ටික වේලාවකට මාව ලබා ගත්තා
රික්රිසෝ

8
මුදුනට අදහස් ඡන්දය: ඔබ කරන්නේ එම අවශ්ය -fවෙනත් ආකාරයකින් ඔබ විසින් ලබා ගත හැකි නවතම GIT (2.18) සමග ස්විචය fatal: destination existsදෝෂයක්.
DeepSpace101

1061

Git හි වින්‍යාස සැකසීමක් ඇති අතර එය සිද්ධි සංවේදී හෝ සංවේදීද යන්න පවසයි : core.ignorecase. Git හට සිද්ධි සංවේදී බව පැවසීමට, මෙම සැකසුම පහත පරිදි සකසන්න false:

git config core.ignorecase false

ප්‍රලේඛනය

සිට git configප්රලේඛනය :

core.ignorecase

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

පෙරනිමිය වැරදියි, git-clone (1) හෝ git-init (1) හැර core.ignorecase, නිධිය නිර්මාණය කරන විට සුදුසු නම් එය විමර්ශනය කර සත්‍ය වේ.

සිද්ධි-සංවේදී නොවන ගොනු පද්ධති

මා දන්නා සිද්ධි-සංවේදී නොවන ගොනු පද්ධති ඇති වඩාත් ජනප්‍රිය මෙහෙයුම් පද්ධති දෙක වේ

  • වින්ඩෝස්
  • OS X.

9
පැත්තක සටහනක, මැක් ඕඑස් එක්ස් සිද්ධි සංවේදී නොවන බව මම නොසිතමි. ඒ වෙනුවට, සිද්ධි සංවේදීතාව තීරණය කරන්නේ ගොනු පද්ධතියයි. HFS + කොටසක් සංයුති කිරීමේදී, පරිශීලකයින්ට එය සිද්ධි සංවේදීද, සංවේදීද යන්න තෝරා ගත හැකිය. සිද්ධි-සංවේදී නොවන පෙරනිමිය වේ.
spaaarky21

229
මෙම පිළිතුර falseකේස්-සංවේදී නොවන ගොනු පද්ධතියකට සැකසීම නරක අදහසක් බව මෙම පිළිතුරේ සඳහන් කිරීම වටී . මෙය අනිවාර්යයෙන්ම පැහැදිලිව පෙනෙන්නට නැත. උදාහරණයක් ලෙස, මම මේ මගේ මැක් මත, එය මගේ මෙම ගැටළු නිරාකරණය කරනු කල්පනා උත්සාහ, එසේ නම් ගොනුවක් නැවත නම් productPageCtrl.jsකිරීමට ProductPageCtrl.js. git statusදැක, නව නමින් ගොනුව ProductPageCtrl.jsනමුත් කළේ නැහැ සිතන productPageCtrl.jsමකා දමා ඇත. මම කැපවී නව ගොනු, එක් කල, සහ GitHub තල්ලු කරන විට, GitHub දැන් අඩංගු ප්රතිමිලදී ගැනීම් දෙකම පවා මගේ (යයි කියනු මේ දක්වා) නමුත් ගොනු දේශීය ණයකට තිබුණේ එකම එක.
මාර්ක් අමරි

5
ArkMarkAmery එය ඔබගේ Git සේවාදායකයාගේ දෝෂයක් සේ පෙනේ. ඔබ වාර්තාවක් ගොනු කළාද?
ඩොමි

24
Om ඩොමි මෙය දෝෂයක් නොවේ, මෙය අපේක්ෂිත හැසිරීමයි. සංවේදී නොවන ගොනු පද්ධතියක මෙය අසත්‍යයක් ලෙස සැකසීම ඇත්ත වශයෙන්ම නරක අදහසකි. කුඩා අකුරු මකාදැමීම git නොදැකීමට හේතුව නම්, ගොනු පද්ධතිය එය මකා දැමූ බවක් වාර්තා නොකිරීමයි. එය නඩුව නොසලකා හරින අතර git මෙම විකල්පය අසත්‍ය ලෙස සකසා නොමැත. ලිපිගොනු නාමයන්ට එන්ටීඑෆ්එස් හි පහළ එදිරිව ඉහළ අකුරක් හෝ මේදය නොමැති බව නොවේ.
ohcibi

16
Om ඩොමි ගිට් එක දක්ෂයි. ඔබ යුත්තේ ඇයි එහේ බෙහෙත් තිබුනේ නැහැ නඩුවක් ඇසීමේදී ගොනු පද්ධතිය මත බොරු මෙම කළේය. භාවිතය git mvගොනුව ගෙනයාමට හා GIT එය කළමනාකරණය කරන්නේ කෙසේද යන්න බලන්න. ඔබ ගොනුව git නොමැතිව ගෙන යන්නේ නම්, ගොනු පද්ධතියට git වෙත සත්‍යය නොකියන බැවින් git ට කළ හැකි කිසිවක් නොමැත . මෙය ntfs / fat / hfs හා සමාන වන අතර git / linux නොවේ.
ohcibi

166

SourceTree භාවිතා කරමින් මට UI වෙතින් මේ සියල්ල කිරීමට හැකි විය

  1. ලෙස නම් FILE.ext කරන්නwhatever.ext
  2. එම ගොනුව වේදිකා ගත කරන්න
  3. දැන් නැවත නම් whatever.ext කරන්නfile.ext
  4. එම ගොනුව නැවත වේදිකා ගත කරන්න

එය ටිකක් වෙහෙසකරයි, නමුත් ඔබට එය ගොනු කිහිපයකට පමණක් කිරීමට අවශ්‍ය නම් එය ඉතා ඉක්මන් වේ


5
Git bash
සමානයි

4
"ගොනුව වේදිකාගත කිරීම" වැදගත් කොටසයි - ඉහත පිළිතුරු කිසිවක් මා වෙනුවෙන් වැඩ කළේ නැත. එය සැබවින්ම පැරණි වින්ඩෝස් විධාන විමසුම සමඟ ක්‍රියා කළේය.
ව්ලැඩ් සබෙව්

1
මෙය වේදිකාගත වන ප්‍රදේශය හරහා ක්‍රියාත්මක වන බව මට වැටහුණේ නැත. නමුත් මගේ නඩුවේදී, ෆෝල්ඩර නාම සහ එම ෆෝල්ඩර තුළ ඇති සමහර ගොනු වෙනස් කිරීමට මට අවශ්‍ය විය. ඒ නිසා මම මුලින්ම සියලුම ෆෝල්ඩර තාවකාලික නම් වලට නම් කළා. නව නම් (ඇතුළත ඇති සියලුම ලිපිගොනු) සහ "මකාදැමූ" ගොනු සිදු කරන ලදි. Git ඔවුන් සියල්ලන්ම "නැවත නම් කරන ලදි" ලෙස සලකුණු කළේය. ඉන්පසු එම ෆෝල්ඩර සියල්ලම ඒවායේ නව අනුවාදයන් වෙත නැවත නම් කර නැවත කැපවී ඇත. අවසාන වශයෙන්, එම කොමිස් 2 ඒකාබද්ධ කරන්න. නමුත් ඔබ ලියා ඇති දේ මත පදනම්ව, මට කොමිස් 2 ක් + ඒකාබද්ධ කිරීමක් නොකර, සෘජුවම වාඩි වී සිටින ප්‍රදේශය හරහා සියල්ලම කළ හැකිව තිබුණි.
ThermoX

4
ෆෝල්ඩරයේ නම මත gitkraken සමඟද ක්‍රියා කරයි.
පිලිප් මැට්රේ

මෙම වෙහෙසකර වැඩ කිරීම සඳහා මම පයිතන් 3 ස්ක්‍රිප්ට් එකක් ලිව්වෙමි
පරිශීලක

128

OS X හි මා කළේ මෙයයි:

git mv File file.tmp
git mv file.tmp file

පියවර දෙකක් නිසා මට “ගොනුවක් තිබේ” දෝෂයක් තිබේ. සමහර විට එය එක් පියවරකින් එකතු කිරීමෙන් --cachedහෝ කළ හැකිය .


21
ඉහළ පිළිතුරෙන් ඇඟවෙන පරිදි, -f(බලය) යනු ඔබ සොයන
ධජයයි

5
perrperryng - නැත, -fයටින් පවතින එෆ්එස් සිද්ධි සංවේදී නොවන අවස්ථාවකදී ධජය උදව් නොකරයි. කෙසේ වෙතත්, පියවර දෙකක විසඳුමක් මා වෙනුවෙන් ක්‍රියාත්මක විය
HEKTO

සිද්ධි-සංවේදී නොවන එෆ්එස් (මැක් මත) භාවිතා කර -fවැඩ කළා!
ඉඟියට

මෙය -fධජය නොමැතිව කවුළු මත ඇති ෆෝල්ඩරයක් සමඟ ද ක්‍රියා කළේය .
nich

git -c "core.ignorecase=false" add .කැපවීම සඳහා නඩුව වෙනස් කර ඇති ගොනු සලකා බලනු ඇත.
nietonfir

73

සමහර විට Git හි සිද්ධි සංවේදීතාව තාවකාලිකව වෙනස් කිරීම අවශ්‍ය වේ :

ක්රමය # 1 - තනි විධානයක් සඳහා සිද්ධි සංවේදීතාව වෙනස් කරන්න:

git -c core.ignorecase=true checkout mybranchතනි checkoutවිධානයක් සඳහා සිද්ධි සංවේදීතාව අක්‍රිය කිරීමට . හෝ ඊට වඩා වැඩි සාමාන්යයෙන්: . (අදහස් දැක්වීමේදී මෙය යෝජනා කිරීම සඳහා VonC වෙත ණය.)git -c core.ignorecase= <<true or false>> <<command>>

ක්රමය # 2 - බහු විධාන සඳහා සිද්ධි සංවේදීතාව වෙනස් කරන්න:

සැකසුම වැඩි කාලයක් වෙනස් කිරීම සඳහා (උදා: එය නැවත වෙනස් කිරීමට පෙර බහු විධානයන් ක්‍රියාත්මක කිරීමට අවශ්‍ය නම්):

  1. git config core.ignorecase(මෙය වත්මන් සැකසුම ලබා දෙයි, උදා false).
  2. git config core.ignorecase <<true or false>> - අපේක්ෂිත නව සැකසුම සකසන්න.
  3. ... තවත් විධාන කිහිපයක් ධාවනය කරන්න ...
  4. git config core.ignorecase <<false or true>> - වින්‍යාස අගය එහි පෙර සැකසුම වෙත නැවත සකසන්න.

1
කෙලින්ම නැත්තේ ඇයි git -c core.ignorecase=<true or false> checkout <<branch>>? නැවත සැකසීමට කිසිවක් නැත.
VonC

2
කුඩා අකුරේ සිට ලොකු අකුර දක්වා වෙනස් කිරීමේදී යෝජිත core.ignorecase වැඩ කිරීම පිළිබඳ අමුතු අත්දැකීමක් මට තිබුණි, නමුත් ලොකු අකුරට කුඩා අකුරට නොවේ. එකම විශ්වාසදායක විසඳුම වන්නේ ගොනු නාම නඩුව හඳුනා ගැනීමට අපොහොසත් වන මෙහෙයුම් පද්ධතියක් භාවිතා කිරීම නැවැත්වීමයි.
CodingMatters

එය තාවකාලික වෙනසක් වීමට හේතුවක් තිබේද? මම සැකසීම් සංවේදී ලෙස වෙනස් කළහොත් එය කිසියම් ගැටළුවක් ඇති කරයිද?
cytsunny

මෙය සාධක කිහිපයක් මත රඳා පවතී, විශේෂයෙන් ඉලක්කගත ගොනු පද්ධතිය සිද්ධි සංවේදීද යන්න - en.wikipedia.org/wiki/Case_sensivity#In_filesystems බලන්න . යෙදවීම ගොනු පද්ධතියට සංවර්ධනය සඳහා භාවිතා කරන ගොනු පද්ධතියට වෙනස් අවස්ථා සංවේදීතාවයක් තිබේ නම් තාවකාලික වෙනසක් අවශ්‍ය විය හැකිය. මගේ නඩුවේදී මම වැඩ කරන්නේ සෑම කෙනෙකුටම එකම Git සැකසුම් (එනම් සිද්ධි සංවේදී) යැයි අපේක්ෂා කරන කණ්ඩායමක ය, එබැවින් මම එය නිවා දැමුවහොත් එය තාවකාලික විය යුතුය.
ස්ටීව් චේම්බර්ස්

44

ඕඑස්එක්ස් යටතේ, මෙම ගැටළුව මඟහරවා ගැනීමට සහ සිද්ධි සංවේදී නොවන ගොනු පද්ධතියක් සංවර්ධනය කිරීමේදී ඇතිවන වෙනත් ගැටළු මඟහරවා ගැනීමට, ඔබට සිද්ධි සංවේදී අථත්‍ය ධාවක / තැටි රූපයක් නිර්මාණය කිරීමට තැටි උපයෝගීතාව භාවිතා කළ හැකිය .

තැටි උපයෝගීතාව ධාවනය කරන්න, නව තැටි රූපයක් සාදන්න, සහ පහත සැකසුම් භාවිතා කරන්න (හෝ ඔබ කැමති පරිදි වෙනස් කරන්න, නමුත් එය සංවේදීව තබා ගන්න):

මැක් ඩිස්ක් උපයෝගිතා තිර රුව

එය දැන් සංවේදී එෆ්එස් මත ඇති බව පැවසීමට වග බලා ගන්න:

git config core.ignorecase false

15
නැත, න්යෂ්ටිය OSX මත පූර්ණ සිද්ධි සංවේදී ඇරඹුම් ධාවකයක් ක්රියාත්මක කරයි. දුර්වල ලෙස ලියා ඇති (අහේම්, ඇඩෝබි) යෙදුම් නොමැතිව ඔබට ජීවත් වීමට සිදුවනු ඇත, නැතහොත් ඔවුන්ගේම මෝඩ වීඑම් තුළ ඒවා ක්‍රියාත්මක කරන්න, නමුත් ඔබ මූලික වශයෙන් * නික්ස් පද්ධති සඳහා කේත කළහොත් එය වටී.
මයික් මාකච්චි

1
නිසියාකාරව ක්‍රියාත්මක වන එකම විකල්පය මෙයයි. මම ඉතිරිය උත්සාහ කර ඇති අතර ඔබ එක් ආකාරයකින් හෝ වෙනත් ආකාරයකින් අච්චාරුවකින් අවසන් වේ. මෙය කිරීමෙන් ගැටලුව නිසි ලෙස විසඳන්න.
ජෝන් හන්ට්

2
තැටි උපයෝගීතාවයට දෝෂ සහිත OS X 10.11 ඇති බව සලකන්න - එය සිද්ධි සංවේදී රූප නිර්මාණය නොකරයි. ඔබට විධාන රේඛා මෙවලම hdiutil භාවිතා කළ යුතුය. apple.stackexchange.com/questions/217915/…
dellsala

7
හයි සියෙරා හි APFS සමඟ මෙය ඊටත් වඩා පහසුය. ප්ලස් එකක් සහිත ඩ්‍රයිව් එකක අයිකනය ක්ලික් කර ප්‍රමාණයේ සීමාවන් නොමැතිව සිද්ධි සංවේදී පරිමාවක් එක් කරන්න. එය ප්‍රධාන පරිමාව සමඟ අවකාශය බෙදාගෙන / වෙළුම් / පරිමාවේ නමට සවි කරයි.
මයිකල් ෆොක්ස්

22

Ij සිජ්මන්ගේ පිළිතුරට සමානව, ඩිරෙක්ටරියක් නැවත නම් කිරීමේදී OSX හි මට වැඩ කළේ මෙයයි ( වෙනත් පිළිතුරකින් මෙම පිළිතුරෙන් දේවානුභාවයෙන් ):

git mv CSS CSS2
git mv CSS2 css

සරලවම කිරීමෙන් git mv CSS cssඅවලංගු තර්ක දෝෂයක් ලබා දී ඇත: fatal: renaming '/static/CSS' failed: Invalid argumentසමහර විට OSX හි ගොනු පද්ධතිය සිද්ධි සංවේදී නොවන නිසා විය හැකිය

ps BTW ඔබ ජැන්ගෝ භාවිතා කරන්නේ නම්, එකතු කිරීමේ ස්ථිතිකයද සිද්ධි වෙනස හඳුනා නොගන්නා අතර ස්ථිතික මූල නාමාවලියෙහිද ඉහත සඳහන් දෑ අතින් කළ යුතුය.


21

මම පහත සඳහන් පියවර භාවිතා කළෙමි:

git rm -r --cached .
git add --all .
git commit -a -m "Versioning untracked files"
git push origin master

මට සරල විසඳුමක්


විසඳුම මෙයයි. අනෙක් පිළිතුරු මෙන් නොව ඔබ කණ්ඩායම් නැවත නම් කරන විට එය හොඳින් ක්‍රියාත්මක වේ. Glamourphilly.org හි අපට සෑම .Jpg .jpg ලෙස වෙනස් කිරීමට අවශ්‍ය විය. Finder හි ඔබට එවැනි කණ්ඩායම් නාමයක් කළ හැකි අතර මෙම පිළිතුර මඟින් එය පරීක්ෂා කර බැලීමට ඔබට ඉඩ සලසයි.
විලියම් එන්ට්‍රිකන්

21

මම අනෙක් පිළිතුරු වලින් පහත විසඳුම් උත්සාහ කළ නමුත් ඒවා ක්‍රියාත්මක වූයේ නැත:

ඔබේ ගබඩාව දුරස්ථව සත්කාරකත්වය දරන්නේ නම් (GitHub, GitLab, BitBucket), ඔබට ගොනුව ආරම්භයේදීම (GitHub.com) නැවත නම් කළ හැකි අතර ඉහළ නමකින් ගොනුවේ නම වෙනස් කිරීමට බල කරන්න.

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

  1. GitHub.com වෙත පිවිසෙන්න
  2. GitHub.com හි ඔබේ ගබඩාවට සංචාලනය කර ඔබ වැඩ කරන ශාඛාව තෝරන්න
  3. වෙබ් අඩවියේ ගොනු සංචාලන මෙවලම භාවිතා කරමින්, ඔබ නැවත නම් කිරීමට අදහස් කරන ගොනුව වෙත යන්න
  4. බ්‍රව්සරය තුළ ගොනුව සංස්කරණය කිරීමට GitHub ඔබට ඉඩ දෙයිද?
    • a.) සංස්කරණය කළ හැකිය
      1. "මෙම ගොනුව සංස්කරණය කරන්න" අයිකනය ක්ලික් කරන්න (එය පැන්සලක් මෙන් පෙනේ)
      2. ගොනු නාම පෙළ ආදානයේ ගොනු නාමය වෙනස් කරන්න
    • ආ.) නුසුදුසු
      1. නව පටිත්තක "බාගන්න" බොත්තම විවෘත කර ගොනුව ඔබේ පරිගණකයට සුරකින්න
      2. බාගත කළ ගොනුව නැවත නම් කරන්න
      3. GitHub.com හි පෙර පටිත්තෙහි, "මෙම ගොනුව මකන්න" අයිකනය ක්ලික් කරන්න (එය කුණු කූඩයක් මෙන් පෙනේ)
      4. "කෙලින්ම branchnameශාඛාවට බැඳෙන්න " රේඩියෝ බොත්තම තෝරාගෙන ඇති බව සහතික කර "වෙනස්කම් සිදු කරන්න" බොත්තම ක්ලික් කරන්න
      5. GitHub.com හි එකම නාමාවලිය තුළම, "ගොනු උඩුගත කරන්න" බොත්තම ක්ලික් කරන්න
      6. නැවත නම් කරන ලද ගොනුව ඔබේ පරිගණකයෙන් උඩුගත කරන්න
  5. "කෙලින්ම branchnameශාඛාවට බැඳෙන්න " රේඩියෝ බොත්තම තෝරාගෙන ඇති බව සහතික කර "වෙනස්කම් සිදු කරන්න" බොත්තම ක්ලික් කරන්න
  6. දේශීයව, ශාඛාව පරීක්ෂා කිරීම / ලබා ගැනීම / අදින්න
  7. සිදු විය

මම කෙලින්ම බිට්බකට් ලෙස නම් කළ අතර එය ක්‍රියාත්මක විය. ස්තූතියි.
rsc

දැන ගැනීමට ලැබීම සතුටක්. මෙම තාක්ෂණය න්‍යායාත්මකව ඕනෑම නිධිය සත්කාරක වේදිකාවක වැඩ කළ යුතු නමුත් එය සමඟ ක්‍රියා නොකරන යමක් තිබේදැයි දැන ගැනීමට මම කැමැත්තෙමි.
gmeben

පින්තූර හෝ PDF වැනි බ්‍රව්සරයේ සංස්කරණය කළ නොහැකි ගොනු සඳහා ක්‍රියා නොකරයි; සංස්කරණ විකල්පයක් නොමැත, පැහැදිලිවම.
අභිජිත් සර්කාර්

B අබිජිට්සාර්කාර් හොඳ කරුණකි. එම අවස්ථා සඳහා මම මගේ පිළිතුර යාවත්කාලීන කළෙමි. මම මෙම උපදෙස් පරීක්ෂා කර සත්‍යාපනය කළෙමි.
gmeben

මෙය අවම වශයෙන් PITA එකක් විය හැකි බව පෙනේ, ස්තූතියි!
kreig303

20

1) ප්රතිනම්කෙරුම් ගොනු Name.jpgකිරීමටname1.jpg

2) ඉවත් කළ ගොනුව සිදු කරන්න Name.jpg

3) ප්රතිනම්කෙරුම් ගොනු name1.jpgකිරීමටname.jpg

4) name.jpgපෙර කැපවීමට එකතු කළ ගොනුව ammend කරන්න

git add
git commit --amend

2
මම මෙය 3 fatal: bad source, source=name1.jpg, destination=name.jpgවන පියවරේදී ලබා ගනිමි. ඔබට යෝජනාවක් තිබේද? Thx
ඇන්තනි කොං

1
ඔබට කැපවීමක් කළ නොහැකිය git add.
ඇලෙක්ස් 78191

පේන විදියට හරිම නපුරුයි නේද? නැත්නම් වඳුරන් ඇල්ලීම.
jeromej

19

අපට git mv විධානය භාවිතා කළ හැකිය. පහත උදාහරණය, ​​අපි abcDEF.js ගොනුව abcdef.js ලෙස නම් කළහොත් අපට පහත විධානය පර්යන්තයෙන් ධාවනය කළ හැකිය

git mv -f .\abcDEF.js  .\abcdef.js

1
Git v2.0.1 (@see github.com/git/git/commit/… ) සිට බල කිරීම තවදුරටත් අවශ්‍ය නොවේ
ජූලියන් හොෆ්මන්

8

මැක් ඕඑස්එක්ස් හයි සියෙරා 10.13 මෙය තරමක් නිවැරදි කරයි. ඔබගේ git ව්‍යාපෘති සඳහා අතථ්‍ය APFS කොටසක් සාදන්න, පෙරනිමියෙන් එයට ප්‍රමාණයේ සීමාවක් නොමැති අතර ඉඩක් නොලැබේ.

  1. තැටි උපයෝගීතාවයේ දී, බහාලුම් තැටිය තෝරා ගන්නා අතරතුර + බොත්තම ක්ලික් කරන්න
  2. ආකෘතිය යටතේ APFS (Case-Sensitive) තෝරන්න
  3. එය නම් කරන්න Sensitive
  4. ලාභයක්
  5. වෛකල්පිත: සංවේදී ලෙස ෆෝල්ඩරයක් සාදන්න gitසහln -s /Volumes/Sensitive/git /Users/johndoe/git

ඔබගේ ධාවකය ක්‍රියාත්මක වේ /Volumes/Sensitive/

රූප විස්තරය මෙහි ඇතුළත් කරන්න

Git හි සිද්ධි සංවේදී පමණක් ගොනු නාම වෙනස් කිරීම් කරන්නේ කෙසේද?


මම මෙම යෝජනාවට කැමතියි. ස්තූතියි!
ෆිල් ග්ලෙගෝර්න්

4

මම මැකෝස් හි කිහිප වතාවක්ම මෙම ගැටලුවට මුහුණ දී සිටිමි. Git සිද්ධි සංවේදී නමුත් මැක් යනු නඩත්තු කිරීම පමණි.

කවුරුහරි ගොනුවක් සිදු කරයි: Foobar.javaදින කිහිපයකට පසු එය නැවත නම් කිරීමට තීරණය කරයි FooBar.java. ඔබ නවතම කේතය අදින විට එය අසමත් වේThe following untracked working tree files would be overwritten by checkout...

මෙය නිවැරදි කරන මා දුටු එකම විශ්වාසදායක ක්‍රමය නම්:

  1. git rm Foobar.java
  2. ඔබට අතපසු කළ නොහැකි පණිවිඩයක් සමඟ එය කරන්න git commit -m 'TEMP COMMIT!!'
  3. අදින්න
  4. මෙය ගැටුම ඒකාබද්ධ කිරීමට ඔබට බල කරන ගැටුමක් ඇති කරයි - මන්ද ඔබේ වෙනස එය මකා දැමූ නමුත් අනෙක් වෙනස නම් කරන ලදි (එබැවින් ගැටළුව)
    1. 'මකාදැමීම' වන ඔබේ වෙනස පිළිගන්න
    2. git rebase --continue
  5. දැන් ඔබේ සලසන වක් මගක් අතහැර git rebase -i HEAD~2සහ dropඑමTEMP COMMIT!!
  6. ගොනුව දැන් කැඳවා ඇති බව තහවුරු කරන්න FooBar.java

3

ඔබ ලිපිගොනු නැවත නම් කිරීම විශාල ප්‍රමාණයක් කර ඇති අතර සමහර ඒවා ආවරණ වෙනස් කිරීමක් පමණක් වන විට, එය කුමක්දැයි මතක තබා ගැනීම අපහසුය. අතින් "git moving" ගොනුව තරමක් වැඩ කළ හැකිය. එබැවින් මගේ ගොනු නාම වෙනස් කිරීමේ කාර්යයන් අතරතුර මම කරන්නේ කුමක්ද:

  1. සියලුම git නොවන ගොනු සහ ෆෝල්ඩරය වෙනත් ෆෝල්ඩරයකට / ගබඩාවකට ඉවත් කරන්න.
  2. වත්මන් හිස් git ෆෝල්ඩරය සිදු කරන්න (සියලුම ලිපිගොනු මකා දැමූ විට මෙය පෙන්වනු ඇත.)
  3. සියලුම ගොනු නැවත මුල් git ෆෝල්ඩරයට / ගබඩාවට එක් කරන්න.
  4. වත්මන් හිස් නොවන git ෆෝල්ඩරය කරන්න.

ඔබ විසින් නම් කරන ලද ලිපිගොනු හෝ ෆෝල්ඩර මොනවාදැයි සොයා බැලීමට උත්සාහ නොකර මෙය සියලු සිද්ධි ගැටලු විසඳනු ඇත.


git commmit --amend4 වන ඡේදයේ නැත්තේ ඇයි ? එසේ නොමැති නම්, සියලු ලිපිගොනු ඉවත් කිරීම සමඟ අමතර බැඳීමක් ඇති වේ. නැතහොත් ඔබට git rebase -iස්කොෂ් සමඟ භාවිතා කළ හැකිය .
ඇලෙක්ස් 78191

1

කිසිවක් ක්‍රියාත්මක නොවන්නේ නම් තැටියෙන් ගොනුව මකා දමා නැවත එකතු කිරීමට git rm ගොනු නාමය භාවිතා කරන්න.


0

මම @CBarr පිළිතුර ගෙන ලිපිගොනු ලැයිස්තුවක් සමඟ එය කිරීමට පයිතන් 3 ස්ක්‍රිප්ට් එකක් ලිවීය:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import os
import shlex
import subprocess

def run_command(absolute_path, command_name):
    print( "Running", command_name, absolute_path )

    command = shlex.split( command_name )
    command_line_interface = subprocess.Popen( 
          command, stdout=subprocess.PIPE, cwd=absolute_path )

    output = command_line_interface.communicate()[0]
    print( output )

    if command_line_interface.returncode != 0:
        raise RuntimeError( "A process exited with the error '%s'..." % ( 
              command_line_interface.returncode ) )

def main():
    FILENAMES_MAPPING = \
    [
        (r"F:\\SublimeText\\Data", r"README.MD", r"README.md"),
        (r"F:\\SublimeText\\Data\\Packages\\Alignment", r"readme.md", r"README.md"),
        (r"F:\\SublimeText\\Data\\Packages\\AmxxEditor", r"README.MD", r"README.md"),
    ]

    for absolute_path, oldname, newname in FILENAMES_MAPPING:
        run_command( absolute_path, "git mv '%s' '%s1'" % ( oldname, newname ) )
        run_command( absolute_path, "git add '%s1'" % ( newname ) )
        run_command( absolute_path, 
             "git commit -m 'Normalized the \'%s\' with case-sensitive name'" % (
              newname ) )

        run_command( absolute_path, "git mv '%s1' '%s'" % ( newname, newname ) )
        run_command( absolute_path, "git add '%s'" % ( newname ) )
        run_command( absolute_path, "git commit --amend --no-edit" )

if __name__ == "__main__":
    main()
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.