কিভাবে আমি Git ফাইল মোড উপেক্ষা করব(chmod) পরিবর্তন?




ignore (8)

আমার একটি প্রকল্প রয়েছে যা আমাকে chmod করার সময় ফাইলের মোড chmod থেকে 777 এ পরিবর্তন করতে হবে, কিন্তু যা প্রধান রেপোতে পরিবর্তন করা উচিত নয়।

জিমে chmod -R 777 . উঠেছে chmod -R 777 . এবং পরিবর্তিত হিসাবে সব ফাইল চিহ্নিত। ফাইল তৈরি করা হয়েছে যে Git উপেক্ষা মোড পরিবর্তন করার একটি উপায় আছে?


আপনি বিশ্বব্যাপী এটি কনফিগার করতে পারেন:

git config --global core.filemode false

যদি উপরে আপনার জন্য কাজ না করে তবে আপনার স্থানীয় কনফিগারেশনটি গ্লোবাল কনফিগারেশনকে ওভাররাইড করতে পারে।

বিশ্বব্যাপী কনফিগারেশন কার্যকর করতে আপনার স্থানীয় কনফিগারেশন সরান:

git config --unset core.filemode

অন্যথায়, আপনি সঠিক মানতে আপনার স্থানীয় কনফিগারেশন পরিবর্তন করতে পারেন:

git config core.filemode false


আপনি যদি আপনার সমস্ত --global জন্য এই অপশনটি সেট করতে চান তবে - --global বিকল্পটি ব্যবহার করুন।

git config --global core.filemode false

যদি এটি কাজ করে না তবে সম্ভবত আপনি git এর একটি নতুন সংস্করণ ব্যবহার করছেন তাই add বিকল্পটি চেষ্টা করুন।

git config --add --global core.filemode false

আপনি যদি গ্লোবাল বিকল্প ছাড়াই এটি চালান এবং আপনার কার্যকারী ডিরেক্টরি একটি রেপো না হয় তবে আপনি পাবেন

error: could not lock config file .git/config: No such file or directory

এটি আমার জন্য কাজ করে:

find . -type f -exec chmod a-x {} \;

অথবা বিপরীত, আপনার অপারেটিং সিস্টেমের উপর নির্ভর করে

find . -type f -exec chmod a+x {} \;

কাজ গাছ মধ্যে পূর্বাবস্থায় ফেরানো মোড পরিবর্তন:

git diff --summary | grep --color 'mode change 100755 => 100644' | cut -d' ' -f7- | xargs -d'\n' chmod +x
git diff --summary | grep --color 'mode change 100644 => 100755' | cut -d' ' -f7- | xargs -d'\n' chmod -x

অথবা mingw-git মধ্যে

git diff --summary | grep  'mode change 100755 => 100644' | cut -d' ' -f7- | xargs -e'\n' chmod +x
git diff --summary | grep  'mode change 100644 => 100755' | cut -d' ' -f7- | xargs -e'\n' chmod -x

নিম্নোক্ত উপনামগুলি (~ / .gitconfig) নির্ধারণ করে আপনি সহজে অস্থায়ীভাবে ফাইলটি মোড প্রতি git কমান্ডটি অক্ষম করতে পারেন:

nfm = "!f(){ git -c core.fileMode=false [email protected]; };f"

যখন এই উপনামটি git কমান্ডে পূর্বনির্ধারিত হয়, তখন ফাইল মোড পরিবর্তনগুলি অন্যথায় দেখানো কমান্ডগুলির সাথে প্রদর্শন করবে না। উদাহরণ স্বরূপ:

git nfm status

যদি

git config --global core.filemode false

আপনার জন্য কাজ করে না, এটি নিজে করুন:

cd into yourLovelyProject folder

জিডি ফোল্ডারে সিডি।

cd .git

কনফিগারেশন ফাইল সম্পাদনা করুন:

nano config

মিথ্যা সত্য পরিবর্তন

[core]
        repositoryformatversion = 0
        filemode = true

->

[core]
        repositoryformatversion = 0
        filemode = false

সংরক্ষণ, প্রস্থান, উপরের ফোল্ডারে যান:

cd ..

জিট পুনর্বিবেচনার

git init

তুমি পেরেছ!


গ্রেগ হিউগিলের উত্তর যোগ করা ( core.fileMode কনফিগারেশন পরিবর্তনশীল ব্যবহার করে):

আপনি যদি "git" ব্যবহার করে সূচী চালানোর অনুমতিগুলি পরিবর্তন করতে গিট আপডেট-সূচক ("গিট অ্যাড" এর নিম্ন স্তরের সংস্করণ --chmod=(-|+)x বিকল্পটি ব্যবহার করতে পারেন। কমিটি "(এবং না" গিট কমিট-এ ")।


সহজ সমাধান:

প্রকল্প ফোল্ডারে সহজভাবে প্রশংসা করুন ( এটি আপনার আসল পরিবর্তনগুলি সরিয়েছে না) ... এটি কেবলমাত্র প্রকল্প ফোল্ডারের অনুমতি পরিবর্তন করার সময় যা ঘটেছে তা সরিয়ে দেবে

প্রশংসা করা নীচে

জিটি কনফিগার core.fileMode মিথ্যা

কেন এই সমস্ত অপ্রয়োজনীয় ফাইল সংশোধন করা হয়েছে: কারন আপনি সৌদ chmod -R777 প্রশংসা করে প্রকল্প ফোল্ডার অনুমতি পরিবর্তন করেছেন ./yourProjectFolder

আপনি পরিবর্তন না চেক করবেন কি না? Git diff ফাইলের নাম ব্যবহার করার সময় আপনি নীচের মত খুঁজে পাওয়া যায় নি






chmod