যখন আমি git diff COMMIT
সেই প্রতিশ্রুতি এবং শিরোনাম (যতদূর আমি জানি) এর মধ্যে পরিবর্তনগুলি দেখতে পাই, তবে আমি সেই একক প্রতিশ্রুতি দ্বারা পরিবর্তনগুলি দেখতে চাই।
আমি কোনও স্পষ্ট বিকল্প খুঁজে পাইনি diff
/ log
যা আমাকে সেই আউটপুট দেবে।
যখন আমি git diff COMMIT
সেই প্রতিশ্রুতি এবং শিরোনাম (যতদূর আমি জানি) এর মধ্যে পরিবর্তনগুলি দেখতে পাই, তবে আমি সেই একক প্রতিশ্রুতি দ্বারা পরিবর্তনগুলি দেখতে চাই।
আমি কোনও স্পষ্ট বিকল্প খুঁজে পাইনি diff
/ log
যা আমাকে সেই আউটপুট দেবে।
উত্তর:
একটি নির্দিষ্ট COMMIT
হ্যাশের জন্য পার্থক্যটি দেখতে :
git diff COMMIT~ COMMIT
যে COMMIT
পূর্বপুরুষ এবং এর মধ্যে পার্থক্য আপনাকে দেখায় COMMIT
। স্বীকৃতি এবং এর বন্ধুদের সম্পর্কে কমান্ড এবং গিটরিভিশন সম্পর্কে বিশদ জানতে গিট ডিফের জন্য ম্যান পেজগুলি দেখুন ~
।
বিকল্পভাবে, git show COMMIT
খুব অনুরূপ কিছু করবে। (কমিটের ডেটা, এর পৃথক সহ - তবে মার্জ কমিটের জন্য নয়)) গিট শো মানচিত্রটি দেখুন ।
^
থমসন এবং বোর্ন শেলস ( |
সেখানে সমার্থক শব্দ ) rc
এবং এর ডেরিভেটিভস (ক্যারেট অপারেটর) এবং zsh
এক্সটেনডগ্লোব সক্ষম ( not
গ্লোব্বিং অপারেটর) এর সাথে উদ্ধৃতি দেওয়ার প্রয়োজন
HEAD^
প্রতিশ্রুতিবদ্ধর একাধিক পিতা-মাতার ক্ষেত্রে অর্থাত্ প্রথম পিতামাতাকে বোঝায় (অর্থাত্ মার্জ কমিট)।
git diff COMMIT~ COMMIT
আমার জন্য কাজ করে, ক্যারেটের পরিবর্তে টিল্ডটি লক্ষ্য করুন। আমি উইন্ডোজ 10 এ গিট সংস্করণ 2.6.1.windows.1 চালাচ্ছি
" এর পিতামাতার সাথে গিট কমিটের বিভিন্নতার জন্য শর্টহ্যান্ড? " তে উল্লিখিত হিসাবে আপনি এগুলি ব্যবহার করতে পারেন git diff
:
git diff COMMIT^!
অথবা
git diff-tree -p COMMIT
গিট শো সহ, আপনাকে (একা একা আলাদা করার জন্য মনোযোগ দেওয়ার জন্য) প্রয়োজন হবে:
git show --color --pretty=format:%b $COMMIT
COMMIT
প্যারামিটারটি হয় কমিট পর :
একটি প্রতিশ্রুতিবদ্ধ বস্তু বা এমন একটি বস্তু যা প্রতিশ্রুতিবদ্ধভাবে একটি প্রতিশ্রুতিবদ্ধ বস্তুর প্রতি শ্রদ্ধার সাথে সম্পর্কিত হতে পারে। নিম্নলিখিতটি সমস্ত কমিট-ইশগুলি হ'ল: কমিট অবজেক্ট, একটি ট্যাগ অবজেক্ট যা প্রতিশ্রুতিবদ্ধ বস্তুকে নির্দেশ করে, একটি ট্যাগ অবজেক্ট যা কোনও ট্যাগ অবজেক্টকে নির্দেশ করে যে কমিট অবজেক্টকে নির্দেশ করে, ইত্যাদি।
কমিট-ইশ উল্লেখ করার জন্য গিটরিভিশন "স্পেসিফাইং রিভিশনস" দেখুন ।
" গিটে ট্রি-ইশ মানে কি? " এও দেখুন ।
আপনি এই সহজ পদ্ধতিতেও চেষ্টা করতে পারেন:
git show <COMMIT>
প্রথমে কমিট আইডি ব্যবহার করে,
git log #to list all
অথবা
git log -p -1 #last one commit id
কমিট আইডি কপি করুন।
একটি নির্দিষ্ট অঙ্গীকার থেকে পরিবর্তনগুলি তালিকাভুক্ত করার জন্য এখন আমরা দুটি পদ্ধতি ব্যবহার করি,
পদ্ধতি 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
পদ্ধতি 2:
git show commit_id
For example: git show 1c6a600a
^!
মানে ??
git show <commit_sha>
এটি আপনাকে যে প্রতিশ্রুতিবদ্ধ তা ঠিক দেখাবে। আমি মনে করি আপনি দুটি কমিট শের মধ্যে একটি স্থান রেখে আপনি এটি একটি পরিসীমা করতে পারেন।
git show <beginning_sha> <ending_sha>
আপনি প্রায়শই প্রত্যাবর্তন করতে পারলে এটি বেশ সহায়ক, কারণ আপনার বৈশিষ্ট্য লগগুলি সমস্ত এক সারি থাকবে।
গিট-ডিফ (1) এর জন্য ম্যান পৃষ্ঠা থেকে :
git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>
মাঝখানে তৃতীয়টি ব্যবহার করুন:
git diff [options] <parent-commit> <commit>
এছাড়াও একই ম্যান পৃষ্ঠা থেকে, নীচে, উদাহরণ বিভাগে :
$ git diff HEAD^ HEAD <3>
শেষ প্রতিশ্রুতি এবং শেষ প্রতিশ্রুতি দেওয়ার আগে সংস্করণটির সাথে তুলনা করুন।
স্বীকারযোগ্যভাবে এটি কিছু বিভ্রান্তিকরভাবে শব্দযুক্ত, এটি কম বিভ্রান্তিকর হবে
এর আগে প্রতিশ্রুতিবদ্ধতার সাথে সাম্প্রতিকতম প্রতিশ্রুতি তুলনা করুন।
git diff HEAD HEAD^
।
নিম্নলিখিতটি কাজটি করে বলে মনে হচ্ছে; একত্রীকরণের মাধ্যমে কী নিয়ে এসেছে তা দেখানোর জন্য আমি এটি ব্যবহার করি use
git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>
git log
? (কারণ stackoverflow.com/a/18585297/6309 )
আরেকটি সম্ভাবনা:
git log -p COMMIT -1
আপনি git diff HEAD HEAD^1
পিতামাতার প্রতিশ্রুতি দিয়ে পৃথক দেখতে ব্যবহার করতে পারেন।
আপনি যদি কেবলমাত্র ফাইলগুলির তালিকা দেখতে চান তবে --stat
বিকল্পটি যুক্ত করুন।
diff
কমান্ড: কি আমি ফাইলে পরিবর্তন করতে হবে কমিট থেকে পেতে হবে HEAD
কমিট HEAD^1
?
git difftool COMMIT^ <commit hash>
আপনি যদি আপনার ডিফ্টলটি কনফিগার করে থাকেন তবে তাও সম্ভব।
এখানে দেখুন কিভাবে কনফিগার difftool অথবা ম্যানুয়েল পৃষ্ঠা এখানে
অতিরিক্ত হিসাবে আপনি git diff-tree --no-commit-id --name-only -r <commit hash>
কোন কমিট হ্যাশটিতে কোন ফাইলগুলি পরিবর্তন / প্রতিশ্রুতিবদ্ধ তা দেখতে ব্যবহার করতে পারেন
প্রতিশ্রুতিবদ্ধ ব্যবহার দ্বারা লেখক এবং সময় দেখতে git show COMMIT
। যার ফলশ্রুতিতে এরকম কিছু ঘটবে:
commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <you@you.com>
Date: Fri Jul 24 17:46:42 2015 -0700
Merge remote-tracking branch 'origin/your-feature'
আপনি যদি দেখতে চান যে কোন ফাইলগুলি পরিবর্তন করা হয়েছিল, উপরের মার্জ লাইন থেকে মানগুলি সহ নিম্নলিখিতটি চালান git diff --stat a2a2894 3a1ba8f
।
আপনি যদি আসল ভিন্নতা দেখতে চান তবে চালান git --stat a2a2894 3a1ba8f
git --stat a2a2894 3a1ba8f
"। আমি মনে করি আপনি git diff a2a2894 3a1ba8f
অন্যথায় বোঝাতে চাইছেন unknown option: --stat
।
সম্পূর্ণ পরিবর্তনগুলি পরীক্ষা করার জন্য:
git diff <commit_Id_1> <commit_Id_2>
শুধুমাত্র পরিবর্তিত / যুক্ত / মুছে ফেলা ফাইলগুলি পরীক্ষা করার জন্য:
git diff <commit_Id_1> <commit_Id_2> --name-only
দ্রষ্টব্য : এর মধ্যে প্রতিশ্রুতি ব্যতীত ভিন্নতা যাচাই করার জন্য আপনাকে কমিট আইডির দরকার নেই।
আমি উইন্ডোজ 10 এ গিট সংস্করণ 2.6.1.windows.1 চালাচ্ছি, সুতরাং আমার নেভিকের উত্তরে (ক্যারেটের পরিবর্তে টিল্ড) সামান্য পরিবর্তন প্রয়োজন:
git diff COMMIT~ COMMIT
আর একটি বিকল্প ক্যারেটের উদ্ধৃতি দেওয়া:
git diff "COMMIT^" COMMIT
এই আদেশটি আপনাকে গিট পিতামাতাদের প্রতিশ্রুতিবদ্ধ হ্যাশ দেবে:
git log -n 2 <commit-hash>
তারপর git diff-tool <commit-hash> <parent-commit-hash>
উদাহরণ:
bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3
commit 7f65b9a9d3820525766fcba285b3c678e889fe3b
Author: souparno <souparno.majumder@gmail.com>
Date: Mon Jul 25 13:17:07 2016 +0530
CSS changed to maintain the aspect ratio of the channel logos and to fit them properly.
commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f
Author: souparno <souparno.majumder@gmail.com>
Date: Mon Jul 25 11:28:09 2016 +0530
The ratio of the height to width of the channel images are maintained.
এর পরে
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f
গ্রাফিকাল ভিউতে উত্স পরিবর্তনটি পরীক্ষা করার ক্ষেত্রে,
$gitk (Mention your commit id here)
উদাহরণ স্বরূপ:
$gitk HEAD~1