উত্তর:
থেকে প্রাসঙ্গিক গীত ডকুমেন্টেশন :
যে প্যাটার্নগুলি একটি নির্দিষ্ট সংগ্রহস্থলের সাথে সুনির্দিষ্ট তবে সেগুলি অন্যান্য সম্পর্কিত সংগ্রহস্থলের সাথে ভাগ করার প্রয়োজন নেই (উদাহরণস্বরূপ, সহায়ক ফাইলগুলি যা সংগ্রহস্থলের অভ্যন্তরে থাকে তবে একটি ব্যবহারকারীর কর্মপ্রবাহের সাথে সুনির্দিষ্ট হয়)
$GIT_DIR/info/excludeফাইলটিতে প্রবেশ করা উচিত ।
.git/info/excludeফাইলটি কোন হিসাবে একই বিন্যাস রয়েছে .gitignoreফাইল। আরেকটি বিকল্প হ'ল core.excludesFileবিশ্বব্যাপী নিদর্শনগুলি ধারণ করে এমন একটি ফাইলের নাম সেট করা।
দ্রষ্টব্য, আপনি যদি ইতিমধ্যে স্টেস্টেড পরিবর্তন না করে থাকেন তবে আপনার উপেক্ষা-নিদর্শনগুলি সম্পাদনা করার পরে আপনাকে অবশ্যই নিম্নলিখিত চালনা করতে হবে:
git update-index --assume-unchanged <file-list>
দ্রষ্টব্য$GIT_DIR : এটি গিট ম্যানুয়াল জুড়ে কেবল গিট সংগ্রহস্থলের পথ নির্দেশ করার জন্য ব্যবহৃত একটি স্বরলিপি । যদি পরিবেশের পরিবর্তনশীলটি সেট করা থাকে, তবে এটি আপনি যে কোনও রেপোতে অবস্থানের স্থানটি ওভাররাইড করে যা সম্ভবত আপনি চান তা নয়।
সম্পাদনা করুন : অন্য উপায়টি হ'ল:
git update-index --skip-worktree <file-list>
এটিকে বিপরীত করুন:
git update-index --no-skip-worktree <file-list>
skip-worktreeজিজ্ঞাসা / ২৩০৯73686868/২ এবং স্ট্যাকওভারফ্লো. com / প্রশ্নগুলি / ১৩630৪৮৮৯/২ , সম্ভবত পছন্দ করা হবে assume-unchanged।
আপডেট : git update-index --skip-worktree [<file>...]পরিবর্তে ব্যবহার বিবেচনা করুন , ধন্যবাদ @ উদ্যানশুমওয়ে! দুটি বিকল্পের পার্থক্য সম্পর্কে বোরিলিডের ব্যাখ্যা দেখুন ।
পুরানো উত্তর:
আপনার যদি ট্র্যাক করা ফাইলগুলিতে স্থানীয় পরিবর্তনগুলি উপেক্ষা করার দরকার হয় (ফাইলগুলি কনফিগার করতে স্থানীয় পরিবর্তন সহ আমাদের কাছে রয়েছে), ব্যবহার করুন git update-index --assume-unchanged [<file>...]।
git update-index --assume-unchanged my-file.phpএড়ানো শুরু করার জন্য চালাতে হয়েছিল। ভকভগক!
git update-index --no-assume-unchanged my-file.php
.git/info/excludeচান (প্রায়শই ভাগ করা এবং ট্র্যাক করা .gitignore দূষিত করা এড়াতে)
--assume-unchangedআপনার আপডেট পড়ার আগে ছুটে এসেছি । আমি ফেরানো হয়েছে --no-assume-unchangedএবং তারপর করেনি --skip-worktreeস্পষ্ট করুন ... আমি কি?
আপনার .gitconfig ফাইলের [عرف] বিভাগে নিম্নলিখিত লাইনগুলি যুক্ত করুন
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
ignored = !git ls-files -v | grep "^[[:lower:]]"
এখন আপনি git ignore my_fileস্থানীয় ফাইলের পরিবর্তনগুলি উপেক্ষা করতে এবং পরিবর্তনগুলি উপেক্ষা করার জন্য ব্যবহার করতে পারেন git unignore my_file। git ignoredউপেক্ষা করা ফাইলগুলি তালিকাভুক্ত করে।
এই উত্তরটি http://gitready.com/interedia/2009/02/18/temporarily-ignoring-files.html থেকে উদ্ভাসিত হয়েছিল ।
আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে:
.gitignoreআপনার কার্যকারী ডিয়ারে একটি নোংরা (বা বিনা অনুমতিযুক্ত ) ফাইলটি ছেড়ে দিন (বা টপগিট বা এই জাতীয় কোনও প্যাচ সরঞ্জাম ব্যবহার করে এটি স্বয়ংক্রিয়ভাবে প্রয়োগ করুন )।$GIT_DIR/info/excludeযদি এটি একটি গাছের সাথে নির্দিষ্ট থাকে তবে আপনার ফাইলে বাদ দেওয়া উচিত ।git config --global core.excludesfile ~/.gitignoreএবং নিদর্শন যোগ করুন ~/.gitignore। আপনি যদি সমস্ত গাছ জুড়ে নির্দিষ্ট নিদর্শনগুলি উপেক্ষা করতে চান তবে এই বিকল্পটি প্রযোজ্য । আমি উদাহরণস্বরূপ .pycএবং .pyoফাইলগুলির জন্য এটি ব্যবহার করি ।এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি প্রয়োগ করার সময় নিদর্শনগুলি ব্যবহার করছেন এবং স্পষ্টভাবে ফাইলগুলি গণনা করছেন না।
git config --globalবিশ্বব্যাপী বিকল্পটি সেট করা দরকার ।
আমি মনে করি আপনি খুঁজছেন:
git update-index --skip-worktree FILENAME
যা স্থানীয়ভাবে করা পরিবর্তনগুলি উপেক্ষা করে
এই সমাধান সম্পর্কে আরও ব্যাখ্যা এখানে http://devblog.avdi.org/2011/05/20/keep-local-modifications-in-git-tracked-files/
ব্যবহার পূর্বাবস্থায়:
git update-index --no-skip-worktree FILENAME
--skipworktreeউচিত, আমি কি আমার মন পরিবর্তন করে আবার ফাইলটি ট্র্যাকিং শুরু করতে চাই?
git update-index --no-skip-worktree <file>
এই প্রক্রিয়াটিকে আরও সহজ করতে আপনি কিছু গিট এলিয়াস ইনস্টল করতে পারেন । এটি [alias]আপনার .gitconfigফাইলের নোড সম্পাদনা করে ।
git config --global alias.ignore 'update-index --skip-worktree'
git config --global alias.unignore 'update-index --no-skip-worktree'
git config --global alias.ignored '!git ls-files -v | grep "^S"'
আপনার জন্য এই ইনস্টল করা শর্টকাটগুলি নিম্নরূপ:
git ignore config.xml
config.xml- আপনাকে দুর্ঘটনাক্রমে এই পরিবর্তনগুলি করা থেকে বিরত করা।git unignore config.xml
config.xml- আপনাকে আবারও সেই পরিবর্তনগুলি সম্পাদনের অনুমতি দেয় allowinggit ignored
আমি ফটম্যানের উত্তর উল্লেখ করে এগুলি তৈরি করেছি - যা --assume-unchangedএকই সংস্করণ উপস্থাপন করে ।
আমি যে সংস্করণটি উপস্থাপন করেছি তা --skip-worktreeস্থানীয় পরিবর্তনগুলি উপেক্ষা করার জন্য ব্যবহার করে । পার্থক্যটির পুরো ব্যাখ্যা দেওয়ার জন্য বোরিলিডের উত্তর দেখুন , তবে মূলত --skip-worktreeউদ্দেশ্য হ'ল ডেভেলপাররা তাদের পরিবর্তনগুলি সংঘটিত হওয়ার ঝুঁকি ছাড়াই ফাইল পরিবর্তন করে ।
এখানে git ignoredউপস্থাপিত কমান্ড ট্যাগটি git ls-files -vদিয়ে শুরু হওয়া কেবলমাত্র এন্ট্রিগুলি দেখানোর জন্য তালিকাটি ফিল্টারটি ব্যবহার করে এবং ফিল্টার করে S। Sট্যাগ একটি ফাইল যার অবস্থা হল "worktree এড়িয়ে যান" উল্লেখ করে। দেখানো ফাইল স্ট্যাটাসগুলির সম্পূর্ণ তালিকার জন্য git ls-files: -tঅপশনটির জন্য ডকুমেন্টেশন দেখুনgit ls-files ।
'!git ls-files -v | grep "^S"'? কমান্ডটি সেখানে এটি নিয়ে আমার পক্ষে কাজ করে না .. এবং এটি মুছে ফেলার সাথে ঠিকঠাক কাজ করে বলে মনে হচ্ছে।
Expansion of alias 'ignored' failed; 'git' is not a git commandgit git ls-files …
git ignore <filename>, এটি কেবলমাত্র সেই ডিরেক্টরিতে প্রযোজ্য। এবং আপনি যখন শেষ পর্যন্ত সেই ফাইলটিতে নিজের পরিবর্তন করতে এবং প্রতিশ্রুতিবদ্ধ করতে এবং রিমোটে চাপ দিতে চান, কেবলমাত্র git unignore <filename>অস্থায়ীভাবে আবার ট্র্যাকিং শুরু করতে হ্যান্ডি ব্যবহার করুন ! ধন্যবাদ!
আপনি কেবল নিজের বাড়ির ডিরেক্টরিতে একটি .gitignore ফাইল যুক্ত করতে পারেন, $HOME/.gitignoreবা ~/.gitignore। তারপরে গিটকে এই ফাইলটি কমান্ডটি ব্যবহার করতে বলুন:
git config --global core.excludesfile ~/.gitignore
এটি একটি সাধারণ .gitignore ফাইল যা কোন বিষয়টিকে উপেক্ষা করবেন তা সিদ্ধান্ত নেওয়ার সময় কোন গিট রেফারেন্স হয়। যেহেতু এটি আপনার হোম ডিরেক্টরিতে রয়েছে তাই এটি কেবল আপনার জন্য প্রযোজ্য এবং কোনও প্রকল্প .gitignore ফাইলকে দূষিত করে না।
আমি বহু বছর ধরে এই পদ্ধতির দুর্দান্ত ফলাফল সহ ব্যবহার করছি।
git check-ignore <file-name>যাচাই করতে ব্যবহার করুন। LMK যদি এটি আপনার পক্ষে কাজ করে
=:git config --global core.excludesfile ~/.gitignore
.gitignoreহোম ডিরেক্টরিতে একটি ফাইল রেখেছি এবং গিটকে পরিবর্তে সেই ফাইলটি ব্যবহার করতে বললাম, তারপরে আমি স্থানীয়ভাবে ফাইলগুলি মুছে ফেলতে চাই না। যাইহোক, আমি পরিবর্তনগুলি ধাক্কা দেওয়ার পরে, রিমোট রিপোজিটরিও সেই ফাইলগুলি মুছে ফেলে। আমি কি কিছু ভুল করবেন?
.gitignoreআপনার স্থানীয় ডিরেক্টরিতে উপস্থিত ফাইলগুলিকে উপেক্ষা করার বিষয়ে। আপনার git rm --cachedযা করা উচিত তা হ'ল যা এগুলিকে রেপো থেকে সরিয়ে দেয় তবে সেগুলি আপনার স্থানীয়তে রেখে দেয়। আপনার পূর্ববর্তী প্রতিশ্রুতিতে ফিরে যেতে সক্ষম হবেন এমন কিছু যা git reset --soft HEAD^পূর্বাবস্থায় ফেরা এবং আপনার ফাইলগুলি পুনরুদ্ধার করার মতো with এটি গিটের সৌন্দর্য: এটি আপনার গিট ইতিহাসে এখনও আছে।
বিশেষত যদি ট্রেড না করা ফাইলগুলি (কয়েকটি) ফোল্ডারে অবস্থিত থাকে তবে বিশেষত যদি অনতিহীন ফাইলগুলিকে অগ্রাহ্য করতে হয়, তবে একটি সহজ সমাধান হ'ল .gitignoreপ্রতিটি আনক্র্যাকড ফোল্ডারে একটি ফাইল যুক্ত করা এবং *একটি নতুন লাইনের পরে থাকা একটি একক লাইনে প্রবেশ করা । এটি যদি খুব সহজেই সরল এবং সোজা সমাধান হয় যদি তালিকৃত ফাইলগুলি কয়েকটি ফোল্ডারে থাকে। আমার জন্য, সমস্ত ফাইল একক চিহ্নবিহীন ফোল্ডার থেকে আসছে vendorএবং উপরের সবেমাত্র কাজ করেছে।
আপনার রেপো ইতিমধ্যে একটি .gitignore ফাইল নেই, তাহলে একটি সহজ সমাধান একটি .gitignore ফাইল তৈরি করতে হয়, এবং এটি যোগ মধ্যে .gitignoreফাইল তালিকায় উপেক্ষিত হবে।
.gitignoreশীর্ষে একটি ভাগ করা ফাইল রয়েছে। তবে আমার নোংরা ফাইলগুলি একটি গভীর ফোল্ডারে রয়েছে, তাই আমি কেবল .gitignoreতাদের নিজের পাশে যুক্ত করেছি । +1
git update-index --assume-unchanged [<file>...]বাদ দেওয়া ফাইলটি যোগ করার পরে চালানো নিশ্চিত করুন। ততক্ষণ পর্যন্ত পরিবর্তনগুলি নেওয়া হবে না।