উত্তর:
থেকে প্রাসঙ্গিক গীত ডকুমেন্টেশন :
যে প্যাটার্নগুলি একটি নির্দিষ্ট সংগ্রহস্থলের সাথে সুনির্দিষ্ট তবে সেগুলি অন্যান্য সম্পর্কিত সংগ্রহস্থলের সাথে ভাগ করার প্রয়োজন নেই (উদাহরণস্বরূপ, সহায়ক ফাইলগুলি যা সংগ্রহস্থলের অভ্যন্তরে থাকে তবে একটি ব্যবহারকারীর কর্মপ্রবাহের সাথে সুনির্দিষ্ট হয়)
$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 command
git 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>...]
বাদ দেওয়া ফাইলটি যোগ করার পরে চালানো নিশ্চিত করুন। ততক্ষণ পর্যন্ত পরিবর্তনগুলি নেওয়া হবে না।