উইন্ডোতে গিট ফাইলের অনুমতি


172

আমি গিতে ফাইল অনুমতি সম্পর্কিত কয়েকটি প্রশ্ন পড়েছি এবং আমি এখনও কিছুটা বিভ্রান্ত হয়েছি। আমি গিটহাবের কাছ থেকে অন্যের কাছ থেকে একটি রেপো পেয়েছি। পোস্ট মার্জ, তাদের অভিন্ন হওয়া উচিত। যাহোক:

$ git diff --summary origin/epsilon master/epsilon
 mode change 100644 => 100755 ants/dist/sample_bots/csharp/compile.sh
 mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/MyBot.coffee
 mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/ants.coffee
 mode change 100644 => 100755 ants/util/block_test.sh
 mode change 100644 => 100755 manager/mass_skill_update.py
 mode change 100644 => 100755 worker/jailguard.py
 mode change 100644 => 100755 worker/release_stale_jails.py
 mode change 100644 => 100755 worker/start_worker.sh

আমি ফাইলের অনুমতিগুলি পরিবর্তন করার চেষ্টা করেছি, তবে এটির ফলাফলগুলির কোনও পরিবর্তন হয় না।

উত্তর:


346

আমি উইন্ডোজে অনুমতিগুলি (এছাড়াও) কীভাবে পরিবর্তন করতে পারি তার সমাধানটি এখানে পেয়েছি: http://blog.lesc.se/2011/11/how-to-change-file-preferences-in-git.html

উদাহরণস্বরূপ নিম্নলিখিত কমান্ড ব্যবহারকারীকে একটি স্বেচ্ছাসেবী ফাইলে অনুমতি কার্যকর করার জন্য যুক্ত করে:

git update-index --chmod=+x <file>

6
+1: উইন্ডোজ থেকে যে শেল স্ক্রিপ্টগুলি আমি প্রতিশ্রুতিবদ্ধ (যেখানে আমি core.filemodeসেট করেছি false) বাস্তবে এক্সিকিউট বিট সেট রয়েছে তা নিশ্চিত করার জন্য আমার যা প্রয়োজন ছিল তা ঠিক ।
tomlogic

আমার ক্ষেত্রে আমিও ফাইলটিতে একটি নতুন লাইন যুক্ত করেছি এবং কেবল তখনই প্রতিশ্রুতিবদ্ধ হতে
পেরেছিলাম

5
উইন্ডোজ সালে Git-ব্যাশ ব্যবহার করে, আমি একটি প্রয়োজন --addপতাকা কিছু কারণে ফাঁসি হবে: git update-index --add --chmod=+x <file>। এর পরে, ফাইলটি chmod নিয়ে ইতিমধ্যে পর্যায়ে ছিল
জেফারসন কুইসাদো

গিট ব্যাশে বা সেন্টিমিডি.এক্সই প্রম্পটে আর কোনও প্রভাব নেই।
বেন

106

স্ট্যাকওভারফ্লো সম্পর্কে এখানে অন্য একটি প্রশ্ন থেকে: আমি কীভাবে গিটকে উপেক্ষা করে ফাইল মোড (chmod) পরিবর্তন করব?

চেষ্টা করুন:

git config core.filemode false

থেকে Git-কনফিগ (1) :

   core.fileMode
       If false, the executable bit differences between the index and the
       working copy are ignored; useful on broken filesystems like FAT.
       See git-update-index(1). True by default.

ধন্যবাদ। আমিও তা দেখেছি। এটি চেষ্টা করে দেখে তাতে কোনও পার্থক্য হয়নি।
সেনেসো

3
আমার ওপি-তেও একই সমস্যা ছিল এবং hardআমি কীভাবে পুনরায় সেট করার চেষ্টা করেছি তা বিবেচনা করে পরিবর্তনগুলি টানতে পারলাম না । এটি আমার জন্য কৌশলটি করেছে।
জো-হারমান হাওল্ট

11
[প্রকল্প] /। গিট / কনফিগারেশনে একই সেটিংস থাকতে পারে এবং ~ / .gitconfig ওভাররাইড করে। আপনি যদি এটি বিশ্বব্যাপী সেট করার চেষ্টা করছেন, তা নিশ্চিত করুন যে এটি স্থানীয়ভাবে ওভাররাইড হচ্ছে না।
বাইনারি ফিলি

1
দুঃখের বিষয়, আমি এনটিএফএসেও এটি প্রয়োজনীয় বলে মনে করি।
২৩7777

1
এটাই উত্তর!
অ্যান্ড্রু সুরডু

29

গিত বাশের পক্ষে হ্যান্ড ওয়ান লাইনার:

find . -name '*.sh' | xargs git update-index --chmod=+x

এটি সমস্ত .shফাইলকে এক্সিকিউটেবল হিসাবে চিহ্নিত করবে । তারপরে, আপনাকে কেবল করতে হবে git commit


2
@ বেনোয়েট-ব্লাঞ্চন ওয়ান-লাইনারের জন্য ছোট সংশোধন করুন ... .শ উদ্ধৃত করা আবশ্যক। অনুসন্ধান . -নম ' .শ' | | xargs git update-index --chmod = + x
স্টিভেন সহজেই অপব্যবহার করেছেন

আপনি ঠিক বলেছেন, আমি উত্তর সম্পাদনা করেছি। ধন্যবাদ
বেনোইট ব্লাঞ্চন

15

আপনি যদি সাইগউইন গিট ব্যবহার করেন (বা লিনাক্স গিটটিও, আমি ধরে নিই), আপনার কোর.ফিলমোড সেটিংসটি level projdir / .git / কনফিগারেশনে প্রকল্প পর্যায়ে সেট করার একটা ভাল সম্ভাবনা রয়েছে। আমি দেখতে পেলাম যে আমার সাইগউইন গিট এবং আমার উইন্ডোজ গিটটি অস্তিত্বহীন ফাইলমোড পরিবর্তনগুলি সর্বদা প্রদর্শিত না হয়ে একটি উইন্ডোজ ফাইল সিস্টেমে ভালভাবে সহাবস্থায় পেতে আমাকে নিম্নলিখিত কাজগুলি করতে হয়েছিল:

  • । projdir / .git / config এ লাইন সেটিং কোর.ফিলমোড মুছুন
  • উইন্ডোজ গিটে, "গিট কনফিগারেশন - গ্লোবাল কোর.ফিলমোড মিথ্যা" চালান

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


6

প্রথমে নীচের কমান্ডটি ব্যবহার করে ফাইলের অনুমতি পরীক্ষা করুন।

git ls-files --stage

তারপরে অনুমতি পরিবর্তন করুন। এখানে "x" এক্সিকিউট করার অনুমতিগুলি উপস্থাপন করে।

git update-index --chmod=+x 'scriptname.ext'

এখন অনুমতিগুলি পুনরায় যাচাই করুন।

গিট এলএস-ফাইল - স্টেজ

==============================================

আপনি যদি উইন্ডোজ পিসি ব্যবহার করছেন তবে লিনাক্স মেশিনে স্থাপন করছেন। লিনাক্স মেশিনে চালানোর জন্য সামঞ্জস্যপূর্ণ করতে প্রথমে নীচের কমান্ডটি প্রয়োগ করুন

ডস 2 ইউনিক্স স্ক্রিপ্টনাম.অ্যাক্স্ট স্ক্রিপ্টনাম.অ্যাক্স্ট


এর মতো কিছু করার উপায় নেই git update-index --chmod=1777 'scriptname.ext'?
অ্যালেক্স বার্কার

আপনি কি সেই পথে নেভিগেট করেছেন, যেখানে স্ক্রিপ্ট ফাইলটি বিদ্যমান? @alex
Sireesh Yarlagadda

5

আমি উবুন্টু, কমিট, পুশ এবং সব ঠিক আছে ফাইলের অনুমতিগুলি পরিবর্তন করে এটি ঠিক করেছি। দেখে মনে হচ্ছে এটি উইন্ডোজ / এনটিএফএসে এমএসজিগিতের সাথে কাজ করবে না।


আমি উইন্ডোজের জন্য গিটহাবের প্রস্তাব দিচ্ছি। ওয়ান্ডারফুল ইন্টারফেস এবং সত্যিই দুর্দান্ত শেল, আমি এমনকি তুলনামূলক সহজ এসএসএস কী সেটআপ এবং গিট ফ্লো ইনস্টলও করেছি।
সাঙ্গোকু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.