একই শাখায় দুটি গিট গিফ, একই কমিট commit


97

দুঃখিত যদি এই প্রশ্নটি বিদ্যমান থাকে, আমি আশ্চর্যরূপে এটি খুঁজে পাইনি: /

git diffএকই শাখা এবং একই প্রতিশ্রুতিতে আমি দুটি ফাইলের মধ্যে কীভাবে একটি সম্পাদন করতে পারি ?

অর্থাত্ git diff fileA.php fileB.php

(আদর্শভাবে রঙিন কোডিং যা সহজেই পড়তে gitপারে তার সাথে .... বা প্রোগ্রামের বাইরে যা করা হয় তার সাথে মিলে যায়!)


দ্রষ্টব্য: গিট: বিভিন্ন কমিটিতে দুটি পৃথক ফাইলের পার্থক্য কীভাবে? এই প্রশ্নের তুলনায় কিছুটা বেশি সাধারণ, তবে উত্তরটি মূলত এই প্রশ্নের সঠিক উত্তর হিসাবে একইরকম এবং এর মধ্যে এই সমস্ত বোগাস উত্তর নেই, তাই আমি এটিকে একটি দ্বিগুণ হিসাবে বন্ধ করার পক্ষে ভোট দিয়েছি।
স্যামবি 26'19

উত্তর:


84

এর জন্য diff fileA.php fileB.phpআপনার গিটের দরকার নেই, কেবল ব্যবহার করুন (বা পাশের তুলনায় চাইলে ভিমডিফ)


22
vimdiffজয়ের জন্য! ধন্যবাদ!
d -_- বি

24
এটি কাজ করতে পারে তবে এটি গিটারের চেয়ে আলাদা নয়। এটি সম্পূর্ণ আলাদা আউটপুট ফর্ম্যাট।
daboross

11
এটি আসল প্রশ্নের উত্তর দেয় না
ডিলানইং

8
আমি একমত নই, ওপিটি পরিষ্কার ছিল না তবে তিনি যে ব্যান্ডকম্পারে উল্লেখ করেছেন তার থেকে বোঝা যায় যে তিনি বিশেষভাবে কোনও অনুসন্ধানের জন্য অনুসন্ধান করছেন না, git diffতবে কেবল সহজ পাঠের জন্য আলাদা । এছাড়াও তিনি আমার উত্তরটি যেভাবে খুঁজছিলেন তা গ্রহণ করার ফলে এটি ইঙ্গিত দেয় যে এটি আসলে উত্তর দেয়।
JaredMcAteer

4
উত্তরটি নিবিড়ভাবে পড়ুন। কমান্ডটি diff fileA fileBনেইgit diff fileA fileB
ম্যাথু হিনা মায়া

248

আপনি যদি git diffদুটি সালিশী ফাইল ব্যবহার করতে চান তবে আপনি ব্যবহার করতে পারেন git diff --no-index <file_a> <file_b>gitএটি কাজ করার জন্য দুটি ফাইল ট্র্যাক করার দরকার নেই ।


32
+1 হিসাবে এটি আধ্যাত্মিক প্রশ্নের উত্তর দেয় ("আপনি এটি কেন করবেন" নির্বিশেষে ... এর কারণগুলিও থাকতে পারে)
নোবডিসনিটমারে

19
--word-diffশুধু লাইন নয়
user3148949

4
আমরা যারা পাওয়ারশেল ব্যবহার করছি তাদের জন্য, এটি একটি রেপোতে দুটি ফাইলের পার্থক্য পাওয়ার আরও সহজ উপায়।
জে সোয়ার

4
"সক্রিয়" অনুসারে বাছাই করার সময় এই দুর্দান্ত উত্তরটি কীভাবে 2 টি নীচে তালিকাভুক্ত হয়েছে, কম ভোট-প্রাপ্ত (এবং কম দরকারী) উত্তরগুলি ??? আমি উত্তরও সঠিক হিসাবে চিহ্নিত হিসাবে গণনা করছি না। যাইহোক ধন্যবাদ!
j_random_hacker

@ ডাবিরোস জিএনইউ ডিফিউটিলেটস ৩.৪+ (২০১-0-০৮-০৮) এ diffরয়েছে --color, যা সাহায্য করতে পারে ( ইউনিক্স.স্ট্যাকেক্সেঞ্জঞ্জ . com/a/338960 দেখুন )। তবে তারপরেও যদি diff-so-fancyএটি ব্যবহার করা হয় তবে এটির নির্দিষ্ট আউটপুট বিন্যাসের প্রয়োজন আছে git diffdiff -u( স্ট্যাকওভারফ্লো দেখুন / a/4857407/10095231 দেখুন ) কাজ করে না।
কেলভিন

14

আপনি যে ফাইলগুলি তুলনা করতে চান তা যদি আপনার কার্যকরী অনুলিপিতে diffথাকে তবে আপনি অন্যের দ্বারা নির্দেশিত হিসাবে কেবল ব্যবহার করতে পারেন , তবে ফাইলগুলি কিছু সংশোধন করে থাকলে আপনি প্রতিটি ফাইলের জন্য একটি পুনর্বিবেচনা নির্দিষ্ট করতে পারেন

git diff <revision_1>:<file_1> <revision_2>:<file_2>

যেমনটি এখানে উল্লেখ করা হয়েছে: https://stackoverflow.com/a/3343506/1815446

আপনার ক্ষেত্রে (উভয় ফাইলের জন্য একই সংশোধন উল্লেখ করে):

git diff <revisionX>:fileA.php <revisionX>:fileB.php

মনে রাখবেন: সংস্করণ হতে পারে HEAD~2, একটি রয়েছে SHA-1, একটি শাখার নাম, ইত্যাদি
ma11hew28

এটি আমার পক্ষে কাজ করেছে, কেবল দুটি ভিন্ন ডিরেক্টরি থেকে ফাইলের নামের তুলনা করা: উভয় ডিরেক্টরিতে git diff --name-only HEAD:dir1 HEAD:dir1_backup একটির পরে কাজ করে git add
ফ্র্যাঙ্ক ফোর্ট

4
যদি কাজটি করা গাছের মধ্যে পুনর্বিবেচনা না পরীক্ষা করা হয়, বা কর্মক্ষম গাছের ফাইলগুলি সংশোধন করা হয় এবং কেউ তার উত্সগুলি থেকে আলাদা করতে চান, বা কোনও খালি গাট রেপুর মতো কোনও বৃক্ষবৃক্ষ নেই। দুর্ভাগ্যজনক যে এই উচ্চতর রেটযুক্ত প্রশ্নের উচ্চতর উত্তর দেওয়া হয়েছে যে উত্তরগুলি এখনও কার্যকর, তবুও বেশ আলাদা, প্রশ্ন, "আমি গিট ব্যবহার না করে কীভাবে গিট-ডিফার্ট পেতে পারি?"
ট্রেন্টপি

4

গিট ডিফের মতো দেখতে আরও নিয়মিত gnu ডিফ করার জন্য, আমি এই পরামিতিগুলির সুপারিশ করব:

diff -burN file_or_dir1 file_or_dir2

(যেখানে -bস্পেসগুলি উপেক্ষা করুন, -uএকীভূত ডিফ, -rপুনরাবৃত্ত হওয়া, -Nঅনুপস্থিত ফাইলগুলি হিসাবে বিবেচনা করুন /dev/null)।

এটি দুর্দান্ত কাজ করে, তবে এখনও রঙ নেই এবং গিট স্টাইলের অটো-পেজিং কার্যত অনুপস্থিত। আপনি যদি উভয়ই ঠিক করতে চান (আমি করি) তবে colordiffএটি ইনস্টল করুন এবং এটি ব্যবহার করুন:

colordiff -burN file_or_dir1 file_or_dir2 | less -R

এটি আউটপুট এবং ইন্টারফেস দেয় যা বাস্তবের খুব কাছাকাছি git diff


4
-1 কারণ "তুমি পারবে না" ভুল (দেখুন: stackoverflow.com/a/13965200/968531 )
NobodysNightmare

"আপনি পারবেন না" সরান, কলর্ডিফ ইনস্টল করার জন্য নির্দেশাবলী যুক্ত করুন এবং এটি মূল প্রশ্নের সঠিক উত্তর হতে পারে।
ডিলানইং


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