গিট পুলটি ত্রুটিযুক্ত ফাইলের নাম সহ দীর্ঘকালীন বাতিল করা হয়েছে


114

আমি উইন্ডোজকে আমার ওএস হিসাবে ব্যবহার করছি এবং ম্যাক ব্যবহার করা বন্ধুর সাথে একটি প্রকল্পে কাজ করছি। তিনি আমাদের গিথুবকে কোড ইন চেক করেছিলেন।

আমি তার সমস্ত কিছু টেনে আনার চেষ্টা করছিলাম এবং এটি তৃতীয় পক্ষের কোডের "ফাইল নাম খুব দীর্ঘ" ত্রুটির সাথে বাতিল করে দেওয়া হয়েছিল।

আমি কি করতে পারি?


আপনার অপারেশনের উপর নির্ভর করে এই সমস্যায় দুটি মূলত পৃথক মামলা রয়েছে। যদি সংগ্রহস্থলটি ইতিমধ্যে বিদ্যমান থাকে তবে আপনি এর কনফিগারেশনটি সম্পাদনা করতে পারেন। তবে না হলে? একটি নতুন ডিরেক্টরি তৈরির সাথে ক্লোনিং / চেকআউট করার জন্য কেবলমাত্র @AlexRosenfeld এর উত্তর সাহায্য করবে।
গাংনুস

উত্তর:


200

গিটের এমএসজিগিট এফএকিউ একটি দীর্ঘ পথের সাথে একটি ফাইল ডিরেক্টরি তৈরি করতে পারে না তবে এটি এখনও পুরানো এমএসজিগিট টিকিট # 110 এর সাথে লিঙ্ক রয়েছে । তবে পরবর্তী টিকিট # 122 অনুসারে সমস্যাটি এমএসজিগিট ১.৯ এ ঠিক করা হয়েছে, এভাবে:

  1. Msysgit 1.9 (বা পরে) আপডেট করুন
  2. গিট বাশ চালু করুন
  3. আপনার গিট সংগ্রহস্থলটিতে যান যা দীর্ঘ পথের সমস্যার 'ভোগ' করে
  4. এর সাথে দীর্ঘ পাথ সমর্থন সক্ষম করুন git config core.longpaths true

এখনও পর্যন্ত, এটি আমার পক্ষে খুব ভালভাবে কাজ করেছে।

# 122 টিকিটে মন্তব্যে গুরুত্বপূর্ণ বিজ্ঞপ্তি সম্পর্কে সচেতন হন

এখানে ফিরে আসবেন না এবং অভিযোগ করবেন না যে এটি উইন্ডোজ এক্সপ্লোরার, সেমিডি.এক্স.এই, বাশ বা আপনি যে কোনও সরঞ্জাম ব্যবহার করছেন tools


কয়েকটি আপডেট রয়েছে, দেখে মনে হচ্ছে mysysgit github.com/msysgit/git/pull/122#issuecomment-43653756
অ্যাডাম গ্রান্ট

18
আসলে যা কাজ করেছিল তা হ'ল: গিট কনফিগারেশন
অ্যান্টন

@ অ্যান্টনআন্দ্রিভ ইউপ, আপনি যদি এটি বিশ্বব্যাপী পরিসরে স্থাপন করতে চান তবে তা ঠিক। সংগ্রহস্থল প্রতি স্থানীয় স্কোপ পুরোপুরি বৈধ।
এম্লসকোট

এটি বিশ্ব স্তরে সেট না করেই আমার পক্ষে কাজ করে না।
আন্তন অ্যান্ড্রিভ

1
এইভাবে কোনও নতুন ডিরেক্টরি তৈরি করে ক্লোনিং / চেকআউট করার জন্য কাজ করবে না। কেবলমাত্র @AlexRosenfeld এর উত্তরই সহায়তা করবে।
গাংনুস

69

সমাধান 1 - এই কমান্ডটি চালিয়ে বিশ্বব্যাপী কনফিগার করুন:

git config --system core.longpaths true

সমাধান 2 - বা আপনি নীচের মত সরাসরি আপনার নির্দিষ্ট গিট কনফিগারেশন ফাইল সম্পাদনা করতে পারেন:

আপনাররেপো ফোল্ডার -> .git -> কনফিগার করুন:

[core]
    repositoryformatversion = 0
    filemode = false
    ...
    longpaths = true        <-- (add this line under core section)

সমাধান 3 - নতুন সংগ্রহস্থলটির ক্লোনিং করার সময়: এখানে


1
এইভাবে কোনও নতুন ডিরেক্টরি তৈরি করে ক্লোনিং / চেকআউট করার জন্য কাজ করবে না। কেবলমাত্র @AlexRosenfeld এর উত্তরই সহায়তা করবে।
গাংনুস

আমি তার সাথে উত্তর আপডেট করেছি, এক জায়গায় থাকতে হবে, ধন্যবাদ।
ড্যানিয়েল হুরি

26

কয়েক বছর দেরীতে, তবে আমি যুক্ত করতে চাই যে আপনার যদি এটির প্রয়োজন হয় তবে আপনি ক্লোন কমান্ড চলাকালীন কনফিগারেশন সেটিংস সেট করতে পারেন like এটা চেষ্টা কর:

git clone -c core.longpaths=true <your.url.here>

1
চিয়ারস সাথী! গিথুব থেকে নতুন ডিরেক্টরি ক্লোনিং করার সময় এটি দুর্দান্ত কাজ করেছে।
জে কিলেন

এটি কোনও সমস্যা হ'ল খুশি!
xandermonkey

1
হ্যাঁ! এটি একটি এবং ক্লোনিংয়ের জন্য - কেবলমাত্র এটিই কাজ করে!
গাংনুস

এটি কাজ করে না, আমার ক্লোনিং এখনও বাতিল হয়ে যায়। আমি ব্যবহার করছি git version 1.8.4.msysgit.0, কোন ধারণা?
সরল-সমাধান

দেখে মনে হচ্ছে এটি অবমাননিত । সম্ভবত গিট-স্কেম ব্যবহার করার চেষ্টা করবেন ? আপনি কি ত্রুটি পেতে পারি?
xendermonkey

12

দীর্ঘপথগুলির সম্পত্তি যুক্ত করতে আপনার.gitconfig ফাইলটি খুলুন। সুতরাং এটি নীচের মত দেখতে হবে:

[core]
symlinks = false
autocrlf = true
longpaths = true

1
এইভাবে কোনও নতুন ডিরেক্টরি তৈরি করে ক্লোনিং / চেকআউট করার জন্য কাজ করবে না। কেবলমাত্র @AlexRosenfeld এর উত্তরই সহায়তা করবে।
গাংনুস

6

উইন্ডোজের জাভা রিপোজিটরিগুলির সাথে অবিচ্ছিন্নভাবে যে কোনও সমস্যা এই সমস্যার মধ্যে পড়েছে সে হিসাবে সাইগউইন ইনস্টল করা ( https://www.cygwin.com/ ) সর্বোত্তম সমাধান ) এবং এর গিট ইনস্টলেশনটি সমস্ত> ডেভেল> গিটের অধীনে ব্যবহার করা।

সাইগউইন দীর্ঘ পথের নাম পরিচালনা করে যাতে অন্য প্রদত্ত কমান্ডগুলি সুবিধা দেয় তবে এটি আমার পক্ষে সেরা সমাধানের কারণ। উদাঃ সন্ধান করুন, সিপি এবং আরএম m আমার উপর বিশ্বাস রাখুন, উইন্ডোতে আপনাকে অনেক দীর্ঘ পথের নামগুলি মুছতে হবে যখন আসল সমস্যাটি শুরু হয়।


4

আপনার ফাইলগুলি ফাইল সিস্টেমের মূলের কাছাকাছি রাখার চেষ্টা করুন। আরও বিশদ: প্রযুক্তিগত কারণে, উইন্ডোজের জন্য গিট ফাইল বা ডিরেক্টরি তৈরি করতে পারে না যখন পরম পাথ 260 টি অক্ষরের চেয়ে দীর্ঘ হয়


দেখে মনে হচ্ছে এটি কেবল ১৩০ এ যেতে পারে [সম্ভবত উইন্ডোজ নীচে ডাবল বাইট ইউনিকোড অক্ষর ব্যবহার করে] ডিফল্ট হিসাবে [?]
রজারডপ্যাক

5
আরও বেশি লোককে এই বিধিনিষেধটি পরিবর্তন করার জন্য মাইক্রোসফ্টকে চাপ দেওয়া উচিত (এবং তারা ভেঙে দেওয়া উত্তরাধিকারী API গুলি ঠিক করুন)। ফাইলের নামগুলি <8> <<> অক্ষরগুলিতে সীমাবদ্ধ থাকা অবস্থায় আমাদের এখনও এই অবশিষ্ট দিনের সাথে বেঁচে থাকার কোনও কারণ নেই। অবিলম্বে এটি ঠিক না করে, একটি বড় গর্ত খনন করা হচ্ছে। আপনি যখন থাকবেন তখন স্ল্যাশ দিকটি ঠিক করুন।
ছাচেম্বারলাইন

@ কেচাম্বারলাইন সি: / foo / বার / বাজ পুরোপুরি বৈধ, যদিও \ foo \ বার az বাজটি বৈধও রয়েছে (এটি বর্তমান ওয়ার্কিং ডিরেক্টরিটি যে লজিক্যাল ড্রাইভটিতে রয়েছে তা উল্লেখ করবে) / foo / bar / baz দ্ব্যর্থহীনতার কারণ হতে পারে কমান্ড-লাইন পতাকা
জ্যাব

@ জ্যাব - এটি সত্য যে ফরোয়ার্ড স্ল্যাশ কখনও কখনও কাজ করে তবে আপনি উল্লেখ করেছেন যে এটি নির্ভরযোগ্য নয়। cmd.exe এক উপায়ে প্রতিক্রিয়া জানাবে এবং অন্যভাবে পাওয়ারশেল করবে। স্বয়ংসম্পূর্ণ বিরতি। অন্তর্নিহিত এপিআই এটি বুঝতে পারে তবে cmd.exe সব ক্ষেত্রেই হয় না এবং ব্যাকস্ল্যাশের নিরাপদ ব্যবহারের কারণে স্ট্রিংগুলিকে মাঝে মধ্যে পলায়নের প্রয়োজন হয়। ইতিমধ্যে প্রচলিত কমান্ড লাইনের ব্যাকস্ল্যাশ আবর্জনা সাধারণ উইন্ডোজ পাথগুলিতে বিদ্যমান স্পেস এবং প্রথম বন্ধনীগুলির সংখ্যা সহ রয়েছে।
cchamberlain

2
এটি কোনও সমাধান নয়। প্রযুক্তি মানুষের সেবক হওয়া উচিত, প্রযুক্তির জন্য মানুষ হওয়া উচিত নয়।
ড্যানিয়েল হুরি

4

উইন্ডোজগুলিতে প্রশাসক হিসাবে "সেমিডি" চালান এবং কমান্ড কার্যকর করুন।

"C:\Program Files\Git\mingw64\etc>"
"git config --system core.longpaths true"

অথবা ফোল্ডার যেখানেই গিটার ইনস্টল করা আছে তার জন্য আপনাকে chmod করতে হবে।

বা "গিট \ মিংউডব্লিউ \ \ ইত্যাদি" এ গিয়ে ম্যানুল্লে আপনার ফাইল ম্যানুয়ালি আপডেট করুন

[http]
    sslBackend = schannel
[diff "astextplain"]
    textconv = astextplain
[filter "lfs"]
    clean = git-lfs clean -- %f
    smudge = git-lfs smudge -- %f
    process = git-lfs filter-process
    required = true
[credential]
    helper = manager
**[core]
    longpaths = true**
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.