অস্থায়ীভাবে গিট থেকে ফাইলগুলি আনট্রাক করুন


449

আমি আমার মেশিনে একটি স্থানীয় গিট সেটআপ করেছি। আমি যখন গিট শুরু করলাম তখন আমি প্রাক-সংকলিত লিবস এবং বাইনারিগুলি যুক্ত করেছি। যাইহোক, এখন আমার উন্নয়নের সময় আমি মাঝে মধ্যে এই ফাইলগুলি চেক করতে চাই না। আমি রেপো থেকে এই ফাইলগুলি সরাতে চাই না। আমি আমার উন্নয়ন শেষ না করা পর্যন্ত এই ফাইলগুলির ট্র্যাক না রাখার কোনও উপায় আছে কি? (আমি মনে করি আমি .gitignore ব্যবহার করতে পারছি না কারণ এটি কেবল সেই ফাইলগুলির পক্ষে কাজ করে যা গিটে নেই I আমি সাময়িকভাবে ফাইলগুলি ট্র্যাকিং অক্ষম করতে চাই))



উত্তর:


723

গিট আপডেট-ইনডেক্সটি যা চান তা করা উচিত

এটি গিটকে বলবে যে আপনি ফাইলের পরিবর্তনগুলি উপেক্ষা করতে শুরু করতে চান
git update-index --assume-unchanged path/to/file

আপনি আবার ট্র্যাক রাখা শুরু করতে চান যখন
git update-index --no-assume-unchanged path/to/file

গিথুব ডকুমেন্টেশন: আপডেট-ইনডেক্স


3
অবশেষে একটি কমান্ড যা আসলে আমার দুর্ঘটনাক্রমে প্রতিশ্রুতিবদ্ধ-দেব-ফাইলের জন্য কাজ করে, ধন্যবাদ :)
রিচার্ড ডি উইট

15
গিট আরএম-আর - ক্যাচড <ফাইল> কেন নয়?
এহসান

23
@ এহসান দেখে মনে হচ্ছে git rm --cachedযে অন্যান্য মেশিনগুলিতে স্থানীয় কপিগুলি মুছে ফেলা হবে, যেখানে একই শাখাটি তাদের পরের টানায় পরীক্ষা করা হবে। দেখুন arlocarreon.com/blog/git/... এবং বিশেষ করে নীচের আলোচনা।
মিট

3
আমার পক্ষে কাজ করছে না, যখন আমি ফাইলটিতে পরিবর্তন করি তখন এটি অন্তর্ভুক্ত পরিবর্তনগুলিতে যুক্ত হয়। আমি বাদ দিতে পারি, তবে তারপরে কোনও এক সময় এটি সম্ভবত দুর্ঘটনাক্রমে যুক্ত হয়ে যায়।
মিস্টারফক্স

8
অনুমান-অপরিবর্তিত এই উদ্দেশ্যে নয়। এই থ্রেডটি
অ্যাপি

264

আপনি আপনার ফাইলগুলি পরে তালাবিহীন রাখতে পারেন

git rm -r --cached <file>

আপনার ফাইল যুক্ত করুন

git add -u

তারা আপনি যা চান বা ধাক্কা।


19
এটি অনুসারে আসলে সঠিক উত্তর: git-scm.com/book/en/v2/…
এহসান

git rm --cached .DS_Store তারপরে এটি প্রিন্ট করে rm '../.DS_Store'এবং লোকাল ফাইল মুছে ফেলা হয় ??! ( git version 2.6.4 (Apple Git-63))
ওয়েশি জেং

উত্তরটি এখানে পেয়েছেন stackoverflow.com/questions/6919121/…
ওয়েইশি জেং

4
এটি সঠিক উত্তর নয় কারণ এটি উত্স ফাইলটি সরিয়ে ফেলবে। ওপি that ফাইলটির স্থানীয় পরিবর্তনগুলি উপেক্ষা করতে চায়, এর জন্য পুরোপুরি ট্র্যাকিং সরিয়ে ফেলতে চায় না
সিজিমন

2
সতর্কতা: এটি আপনাকে যে ফাইলগুলি আনট্র্যাক চাইবে তাও সরিয়ে ফেলবে। সমাধান হ'ল কোথাও সমস্ত ফাইল অনুলিপি করা, এবং প্রতিশ্রুতিবদ্ধতার পরে এগুলি অনুলিপি করা।
PSad

111
git rm --cached

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


2
ডিরেক্টরিগুলির জন্য ভুলে যাওয়া-র বিকল্প (পুনরাবৃত্ত) না: গিট rm -r --cated
আনাতোলি শুবা


7

গিট-বুকটিতে বিভাগ ২.৪ এ উল্লেখ রয়েছে: "জিনিসগুলি পূর্বাবস্থায় ফেরাতে"। মূলত, আপনাকে যা করতে হবে তা হ'ল কিছু রাষ্ট্রের জন্য সূচকের স্থিতিটি আবার হেড স্টেটে পুনরায় সেট করা, এটি সর্বশেষতম চেকআউট (বা প্রতিশ্রুতিবদ্ধ) রাজ্যে to এটি বর্তমান সূচীতে ফাইলের মঞ্চায়ন পূর্বাবস্থায় ফিরে আসে। এই কাজের জন্য আদেশটি হ'ল git reset[1]

সুতরাং, আপনার যে আদেশটি কার্যকর করতে হবে তা হ'ল:

git reset HEAD /path/to/file

গিটের নতুন সংস্করণগুলি (আমি বিশ্বাস করি 1.6 বা তার পরে) কার্যকর করার সময় এই কমান্ডটি (এবং আরও অনেকগুলি) টিপ হিসাবে দেয় git status। এই সংস্করণগুলি খুব ব্যবহারকারী-বান্ধব। একটি ব্যক্তিগত টিপ: আপনি যদি কয়েকটি ফাইল কেবল স্টেজ করে থাকেন তবে ব্যবহার করুন git add -i। এটি ইন্টারেক্টিভ স্টেজিং সরঞ্জামটি চালু করবে, যা জিনিসটিকে বিশেষত সহজ করে তোলে। এছাড়াও, আমি বইটি উচ্চভাবে পড়ার পরামর্শ দিচ্ছি, কারণ এটি ব্যবহারিক পরিস্থিতিতে গিটের ব্যবহার সম্পর্কে খুব স্পষ্ট।

[1] http://www.git-scm.com/book


আমি সম্মতি git reset [file]জানাই যে ফাইলগুলি আনস্টেজ করার সবচেয়ে সোজা উপায়।
বর্ণালী

18
পূর্বাবস্থায় ফেরা এবং আনট্র্যাকিং হ'ল আলাদা জিনিস
জাইমে সাঙ্গাপ

6

মূল প্রশ্নের উত্তর নয়। তবে এটি কাউকে সাহায্য করতে পারে।

আপনি যে পরিবর্তনগুলি করেছেন তা দেখতে ( কোন ফাইলগুলি --assume- অপরিবর্তিত হিসাবে চিহ্নিত হয়েছে ) তা জানুন

git ls-files -v

ফাইলগুলির ফলাফলের তালিকার একটি অক্ষর সহ একটি উপসর্গ থাকবে (উদা: এইচ বা এইচ) যদি এটি ছোট হাতের (মানে এইচ) হয় তবে ফাইলটি চিহ্নিত করা হয়েছে - আসাম-অপরিবর্তিত


5

আমি ধরে নিচ্ছি যে আপনি প্রতিটি ফাইল আলাদাভাবে নির্বাচন করার পরিবর্তে বিল্ড ফোল্ডার বা বিন ফোল্ডারের সমস্ত ফাইল কীভাবে সরিয়ে ফেলতে বলছেন ।

আপনি এই কমান্ডটি ব্যবহার করতে পারেন:

git rm -r -f /build\*

নিশ্চিত হন যে আপনি বিল্ড ডিরেক্টরিটির মূল ডিরেক্টরিতে আছেন।
এই কমান্ডটি, বিন / বা বিল্ড / ফোল্ডারগুলিতে থাকা সমস্ত ফাইলগুলিকে পুনরাবৃত্তভাবে "মুছে ফেলবে"। মুছুন শব্দের দ্বারা আমার অর্থ এই যে গিটটি ভান করে যে এই ফাইলগুলি "মুছে ফেলা হয়েছে" এবং সেই ফাইলগুলি ট্র্যাক করা হবে না। গিটটি সত্যিই মুছে ফেলা মোডে থাকা ফাইলগুলিকে চিহ্নিত করে।

আপনার .gitignore আসন্ন কমিটির জন্য প্রস্তুত আছে তা নিশ্চিত করুন।
ডকুমেন্টেশন: গিট আরএম


1

গিট রিসেট [ফাইল]

মঞ্চ অঞ্চল থেকে কার্যকারী ডিরেক্টরিতে ফাইলটি পান

আমি প্রায়শই .gitignore ফাইলটিতে আমার নোড মডিউলগুলি যুক্ত করতে ভুলে যাই, এটি সেই সমস্যার সমাধান করে।


1

এটি আমার পক্ষে কাজ করেছে

গিট রিসেট হেড 'ফাইলের নাম'


1

সমস্ত আনট্রাক ফাইল মুছে ফেলার জন্য। এই টার্মিনাল কমান্ড ব্যবহার করে দেখুন

 git clean -fdx

এটি গিট ইতিহাস থেকে নয়, ডিস্ক থেকে ফাইলগুলি সরিয়ে ফেলবে।
লিওনার্দো

-1

অচিহ্নযুক্ত ফাইল এবং ফোল্ডারগুলি সরিয়ে ফেলার জন্য গিট ক্লিন-এফডিএক্স সেট করুন

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