আপনি যেভাবে গিটকে একটি বিশেষ দির / ফাইল দেখা / পর্যবেক্ষণ করতে উপেক্ষা করছেন। আপনি কেবল এটি চালান:
git update-index --assume-unchanged <file>
এখন আপনি কীভাবে এটিকে পূর্বাবস্থায় ফিরিয়ে আনবেন যাতে তারা আবার দেখা হয়? (আসুন একে আন-ধরে নেওয়া যাক।)
আপনি যেভাবে গিটকে একটি বিশেষ দির / ফাইল দেখা / পর্যবেক্ষণ করতে উপেক্ষা করছেন। আপনি কেবল এটি চালান:
git update-index --assume-unchanged <file>
এখন আপনি কীভাবে এটিকে পূর্বাবস্থায় ফিরিয়ে আনবেন যাতে তারা আবার দেখা হয়? (আসুন একে আন-ধরে নেওয়া যাক।)
উত্তর:
পূর্বাবস্থায় / প্রদর্শন দিরের / ফাইলগুলি পেতে যেগুলি এটি অপরিবর্তিত বলে ধরে নিয়েছে :
git update-index --no-assume-unchanged <file>
এটি assume-unchanged
চালিত দির / ফাইলগুলির একটি তালিকা পেতে :
git ls-files -v|grep '^h'
git ls-files -v|grep '^h'|cut -c3-
, যা আপনাকে "এইচ" উপসর্গ ছাড়াই কেবল ফাইলের নাম দেবে।
assume-unchanged
কেবল ব্যবহার করুন git update-index --really-refresh
। এই আদেশের সাহায্যে আপনার git ls-files
প্রথমে ফাইলগুলি সন্ধান করার দরকার নেই ।
আপনি যদি প্রায়শই ব্যবহার করেন এমন আদেশটি যদি হয় - তবে আপনি এটির জন্য একটি উপনাম রাখার বিষয়টিও বিবেচনা করতে পারেন। আপনার গ্লোবাল যোগ করুন .gitconfig
:
[alias]
hide = update-index --assume-unchanged
unhide = update-index --no-assume-unchanged
কীভাবে একটি উপকরণ সেট করবেন (যদি আপনি ইতিমধ্যে জানেন না):
git config --configLocation alias.aliasName 'command --options'
উদাহরণ:
git config --global alias.hide 'update-index --assume-unchanged'
git config... etc
এটি আপনার সংরক্ষণ করার পরে .gitconfig
, আপনি একটি ক্লিনার কমান্ড চালাতে পারেন।
git hide myfile.ext
অথবা
git unhide myfile.ext
এই গিট ডকুমেন্টেশন খুব সহায়ক ছিল।
মন্তব্য অনুসারে, বর্তমানে কোন ফাইলগুলি গোপন করা হচ্ছে তা খুঁজে বের করার জন্য এটিও একটি সহায়ক উপমা :
[alias]
hidden = ! git ls-files -v | grep '^h' | cut -c3-
hidden = ! git ls-files -v | grep '^h' | cut -c3-
গিট আপডেট-ইনডেক্স ফাংশনের একাধিক বিকল্প রয়েছে যা আপনি নীচের মতো টাইপ করতে পারেন:
git update-index --help
এখানে আপনি বিভিন্ন বিকল্প পাবেন - কীভাবে ফাংশন আপডেট-ইনডেক্সটি পরিচালনা করবেন।
[যদি আপনি ফাইলের নাম জানেন না]
git update-index --really-refresh
[যদি আপনি ফাইলের নাম জানেন]
git update-index --no-assume-unchanged <file>
উপেক্ষা তালিকার মধ্যে যুক্ত করা সমস্ত ফাইলকে ফিরিয়ে আনবে।
git update-index --assume-unchanged <file>
git update-index --no-assume-unchanged <file>
আমার জীবন বাঁচিয়েছে .. ঠিক আছে, আমি আবার ফোল্ডারটি আবার সিঙ্ক করতে পারি, তবে আমি এই সমস্যার জন্য একটি "বাস্তব" সমাধান চাইছিলাম।
অতিরিক্ত ডকুমেন্টেশন লিঙ্ক এবং সংক্ষিপ্তनाव সহ @ অ্যাডারডিজাইন, @ অ্যাডস ওয়েবওয়ার্ক এবং @ অংকিত বিশ্বকর্মা এবং @ বিডোসারার, @ রিটসাম, @ স্যানফ, এবং @ টোরিকের মন্তব্যগুলি থেকে আসল মূল উত্তরগুলি সংশ্লেষিত করতে ...
বেসিক কমান্ড
করার একটি ফাইল রিসেট যে অনুমান-অপরিবর্তিত স্বাভাবিক অবস্থায় ফিরিয়ে:
git update-index --no-assume-unchanged <file>
অনুমান-অপরিবর্তিত সমস্ত ফাইলের তালিকা করতে :
git ls-files -v | grep '^[a-z]' | cut -c3-
করার সব রিসেট অনুমান-অপরিবর্তিত ফাইল স্বাভাবিক অবস্থায় ফিরিয়ে:
git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --
দ্রষ্টব্য: এই কমান্ডটি অন্য কোথাও তালিকাভুক্ত হয়েছে এমন সমস্ত অনুমান-অপরিবর্তিত ফাইলকে আর পুনরায় সেট করতে দেখা যায় না (আমি বিশ্বাস করি এটি এর আগে ব্যবহৃত হয়েছিল এবং সমাধান হিসাবে এটি পূর্বে তালিকাভুক্ত হয়েছিল):
git update-index --really-refresh
শর্টকাট
এই সাধারণ কাজগুলিকে গিটে কার্যকর করা সহজ করতে আপনার ব্যবহারকারীর জন্য নিম্নলিখিত উপন্যাস বিভাগটি যুক্ত / আপডেট করুন .gitconfig
(যেমন ~/.gitconfig
একটি * নিক্স বা ম্যাকোস সিস্টেমে):
[alias]
hide = update-index --assume-unchanged
unhide = update-index --no-assume-unchanged
unhide-all = ! git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --
hidden = ! git ls-files -v | grep '^[a-z]' | cut -c3-
git hidden
, আপনি শেল !
hidden = ! git ls-files -v | grep '^h' | cut -c3-
--really-refresh
সূচক ফাইলগুলিতে অনুমান-অপরিবর্তিত ফ্ল্যাগগুলি সাফ করে না (বা আর তা করবে না, সম্ভবত এটি একবারে করেছিল)।
আপনি যদি প্রয়োগ করা সমস্ত ফাইলকে পূর্বাবস্থায় ফিরিয়ে আনতে চান তবে যে কোনও স্ট্যাটাসের সাথে অপরিবর্তিত রয়েছে তা ধরে নিই, কেবল ক্যাশেড নয় (গিটটি এটিকে নিম্নরূপে অক্ষর দ্বারা চিহ্নিত করে), আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
git ls-files -v | grep '^[a-z]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged
git ls-files -v
সমস্ত ফাইল তাদের স্থিতি সহ মুদ্রণ করবেgrep '^[a-z]'
ফাইলগুলি ফিল্টার করবে এবং কেবল অপরিবর্তিত হিসাবে ধরে নেবেcut -c 3-
স্থিতিটি সরিয়ে ফেলবে এবং 3-তম বর্ণ থেকে শেষ পর্যন্ত কেবল পথ ছাড়বেtr '\012' '\000'
লাইন চরিত্রের শেষ (\ 012) শূন্য অক্ষর (\ 000) এ প্রতিস্থাপন করবেxargs -0 git update-index --no-assume-unchanged
git update-index --no-assume-unchanged
পূর্বাবস্থায় ফিরে আসার জন্য শূন্য অক্ষর দ্বারা পৃথক সমস্ত পাথ পাস করবেযোগ করা হচ্ছে @adardesign
এর উত্তর, যদি আপনি যে যোগ করা হয়েছে সমস্ত ফাইল রিসেট করতে চান assume-unchanged
তালিকার no-assume-unchanged
এক বারেই, আপনি নিম্নলিখিতগুলি করতে পারেন:
git ls-files -v | grep '^h' | sed 's/^..//' | sed 's/\ /\\ /g' | xargs -I FILE git update-index --no-assume-unchanged FILE || true
এটি কেবল গ্রেপ থেকে দুটি অক্ষরের আউটপুট সরিয়ে ফেলবে "h "
, তারপরে ফাইলের নামগুলিতে উপস্থিত থাকা যে কোনও ফাঁকা স্থান থেকে রক্ষা পাবে এবং শেষ পর্যন্ত || true
লুপের কিছু ফাইলের ত্রুটির কারণে কমান্ডটি অকালপূর্বক বন্ধ করতে বাধা দেবে।
আপনি যদি গিট এক্সটেনশনগুলি ব্যবহার করছেন তবে নীচের পদক্ষেপগুলি অনুসরণ করুন:
তুমি পেরেছ.
এখানে এমন কিছুই নেই যা coveredাকা নেই। তবে আমার 2 সেন্ট যোগ করতে চাই। কখনও কখনও, আমি একটি বিল্ড চালনা করি এবং এটি অনেকগুলি ফাইল পরিবর্তন করে এবং তারপরে আমি কোনও কিছুর উপরে কাজ করতে চাই, সুতরাং এই আদেশটি আমাকে সত্যিই অনেক সাহায্য করে।
git update-index --assume-unchanged `git status | grep modified | sed 's|modified:||g'| xargs`
আশা করি অন্য কেউও এটির কাজে লাগবে।
.gitignore
আপনার বিল্ড আর্টফ্যাক্টগুলি উপেক্ষা করার জন্য আপনি ব্যবহার করে উপকৃত হবেন ।
.gitignore
তবে তা অনেক সময় আমার অভিজ্ঞতা পর্যাপ্ত নয়। তবে আপনি যে প্রসঙ্গে এটি বলছেন তা আমি বুঝতে পারি।
উইন্ডোজে আমার জন্য সমাধানগুলির কোনওটিই কাজ করেনি - এটি ফাইলের স্থিতির H
চেয়ে মূলধন ব্যবহার করে বলে মনে হয় h
এবং গ্রেপ কমান্ডের জন্য অতিরিক্ত ক্যারেটের প্রয়োজন রয়েছে ^
পাশাপাশি লাইনটির শুরুতে পাশাপাশি পরবর্তী চরিত্রটিকে উপেক্ষা করারও প্রতিনিধিত্ব রয়েছে।
উইন্ডোজ সমাধান
git ls-files -v | grep '^^H'
সমস্ত আনকচ করা ফাইলের তালিকা করতেgit ls-files -v | grep '^^H' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
এর মাধ্যমে সম্পন্ন সমস্ত ফাইলের স্কিপিং ফাইলগুলিকে পূর্বাবস্থায় ফিরিয়ে আনতে update-index --skip-worktree
git ls-files -v | grep '^^H]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged
এর মাধ্যমে সম্পন্ন সমস্ত ফাইলের স্কিপিং ফাইলগুলিকে পূর্বাবস্থায় ফিরিয়ে আনতে update-index --assume-unchanged
git ls-files -v | grep '^^H'
সমস্ত অনাবৃত ফাইলের তালিকা তৈরি করতে এবং উপরের কমান্ডগুলি কাজ করেছে কিনা তা যাচাই করতে - এটি এখন আর কোনও কিছু ফেরত দেবে না