গিট ব্যবহার করে একটি নির্দিষ্ট ফাইলের পরিবর্তনগুলি দেখুন


472

আমি জানি যে git diffপরিবর্তনগুলি পরীক্ষা করতে আমি কমান্ডটি ব্যবহার করতে পারি , তবে যতদূর আমি বুঝতে পেরেছি এটি ডিরেক্টরি ভিত্তিক। এর অর্থ এটি বর্তমান ডিরেক্টরিতে সমস্ত ফাইলের সমস্ত পরিবর্তন দেয়।

আমি কীভাবে কেবল একটি নির্দিষ্ট ফাইলের পরিবর্তনগুলি পরীক্ষা করতে পারি? বলুন, আমি ফাইলগুলি file_1.rb,, file_2.rb..., পরিবর্তন করেছি file_N.rb, তবে আমি কেবলমাত্র ফাইলের পরিবর্তনগুলিতেই আগ্রহী file_2.rb। তখন আমি কীভাবে এই পরিবর্তনগুলি পরীক্ষা করব (আমি প্রতিশ্রুতি দেওয়ার আগে)?



4
আমার মূল প্রশ্নটি হ'ল আমি সমস্ত পরিবর্তন করার আগে একটি নির্দিষ্ট ফাইলের পার্থক্য কীভাবে পরীক্ষা করব check গিট লগ আমার ধারণা প্রতিশ্রুতিবদ্ধ পরিবর্তনের জন্য।
মেলন

1
আমার অভিজ্ঞতায় GitKraken
Giovanni Benussi

উত্তর:


642

একটি কমান্ড ব্যবহার করুন:

git diff file_2.rb

আপনি যে ধরণের জন্য পার্থক্য পেতে পারেন সে সম্পর্কিত পুরো তথ্যের জন্য git diffডকুমেন্টেশন দেখুন ।

সাধারণত, git diffনিজে থেকে পুরো সংগ্রহস্থলের সমস্ত পরিবর্তন দেখায় (কেবলমাত্র বর্তমান ডিরেক্টরি নয়)।


100
আপনি যদি এমন কোনও ফাইলের পরিবর্তন দেখতে চান যা আপনি ইতিমধ্যে "গিট অ্যাড" 'এড করেছেন, এটি "গিট ডিফ
আনা বেটস

8
File_2.rb $ Git পরিবর্তন [কমিট হ্যাশ]: আপনি যদি কোনো পুরোনো কমিট বিরুদ্ধে একটি ফাইল করতে চান তাহলে
অ্যালেক্স Angelico

2
ডিফ ভিউ থেকে কীভাবে প্রস্থান করবেন?
গ্যারি

1
অথবা সোর্স ট্রি ব্যবহার করুন।
জেনকোড

4
@ গুরুপলিটসিংহ ধঞ্জু কিউ

110

অন্য একটি পদ্ধতি ( এই এসও উত্তরে উল্লিখিত ) ইতিহাসকে টার্মিনালে রাখবে এবং আপনাকে ফাইলটির একটি খুব গভীর ট্র্যাক রেকর্ড দেবে:

git log --follow -p -- file

এটি ফাইলের পুরো ইতিহাস (নাম পরিবর্তনের ইতিহাস এবং প্রতিটি পরিবর্তনের জন্য পৃথক পৃথক ইতিহাস সহ) প্রদর্শন করবে।

অন্য কথায়, যদি ফাইল নামের বারটি একবারে foo নামকরণ করা হয়, তবে গিট লগ-পি বার (--ফলো বিকল্প ব্যতীত) কেবল ফাইলটির ইতিহাস কেবল সেই বিন্দু পর্যন্ত প্রদর্শিত হবে যেখানে এটি নামকরণ করা হয়েছিল - এটি প্রদর্শন করবে না ফাইলের ইতিহাস যখন এটি ফু হিসাবে পরিচিত ছিল। গিট লগ - ফলো -পি বার ব্যবহার করে ফাইলের পুরো ইতিহাস দেখা যাবে, যখন ফু হিসাবে পরিচিত ছিল তখন ফাইলের কোনও পরিবর্তনও রয়েছে।


3
যুক্ত / মুছে ফেলা সংক্ষিপ্ত বিবরণ থাকতে - স্ট্যাট এর সাথে সুন্দরভাবে কাজ করে।
টম

2
হ্যাঁ এই উত্তরটি কমপক্ষে উচ্চতর হওয়া উচিত, ইতিহাস সন্ধান করে, কেবল বর্তমানের ভিন্নতা নয়, আপনাকে সমস্ত প্রতিশ্রুতিবদ্ধ হ্যাশগুলিও ট্র্যাক রাখতে হবে না। খুব সহজ ব্যবহার এখনও পরিবর্তনগুলিতে খুব শক্তিশালী
ইলহিকাস

87

আপনি gitk [filename]পরিবর্তন লগ দেখতে ব্যবহার করতে পারেন


2
এটি ফাইলটিতে কমিটগুলির ইতিহাস প্রদর্শন করবে যা কখনও কখনও আপনার যা প্রয়োজন তা হতে পারে।
r1k0

26

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

git blame <filename>


4
কে সেরা পরিবর্তন করেছে এবং কখন এবং সেই সাথে কোন পরিবর্তনটি প্রতিশ্রুতিবদ্ধ হয়েছিল তার অংশ হিসাবে এটিই আপনাকে জানিয়েছে এটি সর্বোত্তম উত্তর। একটি নির্দিষ্ট পরিবর্তনের জন্য ফিল্টার করতে, একটি সংক্ষিপ্ত মান git blame <filename> | grep <searchfor>যেখানে <searchfor>রয়েছে ঠিক সেখানে করুন । উদাহরণস্বরূপ, কারা কারা পরিবর্তিত হয়েছে fooতা barঅনুসন্ধান dist/index.phpকরতে আপনি ব্যবহার করবেনgit blame dist/index.php | grep bar
ক্রাং প্রাইম

15

আপনি মৃত্যুদণ্ড কার্যকর করতে পারেন

git status -s

এটি পরিবর্তিত ফাইলের নাম প্রদর্শন করবে এবং তারপরে আগ্রহী ফাইল পাথ অনুলিপি করে আপনি ব্যবহারগুলি পরিবর্তনগুলি দেখতে পাবেন git diff

git diff <filepath + filename>

8

কেবলমাত্র নির্দিষ্ট ফাইল পরিবর্তনের জন্য বিশদ প্রতিবেদন করার জন্য তালিকাবদ্ধ করতে,

git log --follow file_1.rb

একই ফাইলের জন্য বিভিন্ন কমিটের মধ্যে পার্থক্য তালিকা করতে,

git log -p file_1.rb

কেবল প্রতিশ্রুতিবদ্ধকরণ এবং এর বার্তা তালিকাবদ্ধ করতে,

git log --follow --oneline file_1.rb

5

আপনি চেষ্টা করতে পারেন

git show <filename>

কমিটের জন্য, গিট শো লগ বার্তা এবং পাঠ্যগত পার্থক্য (আপনার ফাইল এবং ফাইলের সংস্করণ সংস্করণের মধ্যে) প্রদর্শন করবে।

আপনি আরও তথ্যের জন্য গিট শো ডকুমেন্টেশন চেক করতে পারেন ।


0

অথবা আপনি যদি নিজের গুই সরঞ্জাম ব্যবহার করতে পছন্দ করেন তবে:

git difftool ./filepath

আপনি এই পোস্টটি দ্বারা পরিচালিত আপনার গুই সরঞ্জামটি সেট করতে পারেন: ভিজ্যুয়াল ডিফ প্রোগ্রামের সাথে আমি কীভাবে 'গিট ডিফ' আউটপুট দেখতে পারি?


0

@ গ্রেগ হিউগিলের সাথে পুরোপুরি একমত

এবং যদি আপনার পাথটিতে স্পেস থাকে তবে আপনি ব্যবহার করতে পারেন, অ্যাডোস্ট্রোফ 'বা with এর সাথে যুক্ত করার চেষ্টা করুন `

গিট ডিফ 'মাইপ্রজেক্ট / মাই ফোল্ডার / মাই সাব ফোল্ডার / ফাইল_2.rb'

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