মুছে ফেলা ফাইল ফু-র জন্য "গিট লগ-‌- ফু" কাজ করে না কেন?


89

আমার সংগ্রহস্থলের পরিবর্তনগুলি যেমন:

  1. ... কিছু সম্পর্কযুক্ত কমিট ...
  2. foo100 লাইন সামগ্রীতে নতুন ফাইল প্রতিশ্রুতিবদ্ধ
  3. ... হস্তক্ষেপ কমিটি, যার মধ্যে কিছু স্পর্শ foo...
  4. fooবিদ্যমান ফাইলের শীর্ষে barএবং git rm fooএকই প্রতিশ্রুতিতে সামগ্রীগুলি সন্নিবেশ করান
  5. ... আরও সম্পর্কযুক্ত কমিট ...

এখন আমি মুছে ফেলা ফাইলের লগ দেখতে চাই foo। এসও সহ আমি যা কিছু পড়েছি তা বলছে আমার সক্ষম হওয়া উচিত git log -- foo, তবে সেই আদেশটি কোনও আউটপুট দেয় না।

যদি আমি এটি কমিট যে মুছে ফেলা এতে অন্তর্ভুক্ত fooআমি করতে পারেন git log 1234abcd -- fooএবং তার লগ দেখতে, তাই আমি আমার পথ মনে fooসমস্যা হয় না। git merge-base HEAD 1234abcdআউটপুটগুলিও নোট করুন 1234abcd[...], সুতরাং আমি মনে করি যে প্রতিশ্রুতিটি পৌঁছানোর যোগ্য তা প্রমাণ করা উচিত HEAD। মনে রাখবেন যে fooআমার কার্যকারী গাছটিতে কোনও ফাইল নেই (স্পষ্টত, যেহেতু এটি মোছা হয়েছিল)। ওএস এক্স-তে গিট 1.7.1.1 ব্যবহার করা হচ্ছে।

git log -- fooআমার জন্য কেন কাজ করে না এবং আমি কীভাবে এটি ঠিক করতে পারি? ধন্যবাদ!


4
আপনি চেষ্টা করেছেন git log --follow -- fooনাকি git log --follow -M -- foo? (পুনরায় নামকরণ শনাক্তকরণে বাধ্য করতে)
ভোনসি

4
ক্র্যাপ, আমি চেষ্টা --followকরেছিলাম - তবে পড়ার পরে historyআমি দেখতে পাচ্ছি যে আমি অন্য কোথাও সিডি করেছি যখন চেষ্টা করেছি তখন পথটি অবৈধ করে তুলেছে। git log --follow -- fooআমি যখন ডান শুরুর দিক থেকে চেষ্টা করেছি তখন কাজ করেছি। আমি গীত ঘূর্ণায়মান বিবেচনা অনুমান fooমধ্যে barপুনঃনামকরণ কোন ধরণের হিসেবে? যাই হোক না কেন, ধন্যবাদ! আপনি যদি এটি উত্তর হিসাবে পোস্ট করেন তবে আমি এটি জমা দিতে পেরে খুশি হব।
ব্যবহারকারী385804

4
বিরক্তিকর যা প্রশ্নের শিরোনামে --পরিবর্তিত হয় ...
ক্যাসাবেল

উত্তর:


118

আপনি সেই --followবিকল্পটি ব্যবহার করতে চান git logযা ম্যান পৃষ্ঠায় বর্ণিত রয়েছে:

Continue listing the history of a file beyond renames.

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

git log --follow -- foo

হালনাগাদ:

গিট 2.9+ এখন সমস্ত git diffএবং git logআদেশের জন্য এটি ডিফল্টরূপে সক্ষম করেছে :

ডিফল্টরূপে "গিট ডিফ" এবং "গিট লগ" পরিবারে চীনামাটির স্তরের কমান্ডগুলির মুখোমুখি শেষ ব্যবহারকারী পুনরায় নাম সনাক্তকরণ সক্ষম করে; এটিকে অক্ষম করতে আপনি এখনও "ডিফার্নেমস" কনফিগারেশন ভেরিয়েবল ব্যবহার করতে পারেন।

মাথা আপ জন্য এক্স ইউরি ধন্যবাদ!


4
এটা --followঅংশ ছাড়া আমার জন্য কাজ করে । আমি শুধু যোগ করা প্রয়োজন --। আমি দৌড়াচ্ছি git-2.9.0
এক্স-ইউরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.