git - বনট - আমি কিভাবে পরিবর্তন করা হয়েছে যে পরিবর্তন প্রদর্শন করবেন?
পরিবর্তন মানুষ (9)
আমি প্রতিশ্রুতিবদ্ধ কয়েক পরিবর্তন স্টেজ; আমি পরবর্তী কমিটির জন্য যে সমস্ত ফাইলগুলিকে সংগঠিত করে দেখি তাতে কীভাবে পার্থক্য দেখা যায়? আমি গিট স্ট্যাটাস সম্পর্কে সচেতন, কিন্তু আমি প্রকৃত diffs দেখতে চাই - না শুধুমাত্র ফাইলের নাম যা মঞ্চে।
আমি দেখেছি যে git-diff(1) মানুষ পৃষ্ঠাটি বলে
গিট diff [- options] [-] [...]
এই ফর্মটি আপনি সূচকের সাথে সম্পর্কিত পরিবর্তনগুলি দেখতে (পরবর্তী কমিটির জন্য স্টেজিং এলাকা)। অন্য কথায়, পার্থক্যগুলি যা আপনি সূচককে আরও যোগ করার জন্য জিট বলতে পারেন তবে আপনি এখনও তা না। আপনি git-add (1) ব্যবহার করে এই পরিবর্তনগুলি স্থির করতে পারেন।
দুর্ভাগ্যবশত, আমি বেশ কিছু বুঝতে পারছি না। কিছু সহজ এক লাইনার যা আমি একটি উপনাম তৈরি করতে পারে, ঠিক আছে?
একটি ভিশুয়াল ডিফার টুল ব্যবহার করে
ডিফল্ট উত্তর (কমান্ড লাইন এ)
এখানে শীর্ষ উত্তরগুলি সঠিকভাবে Index
ক্যাশে / স্টেজযুক্ত পরিবর্তনগুলি কীভাবে দেখায় তা দেখায়:
$ git diff --cached
অথবা $ git diff --staged
যা একটি উপনাম।
পরিবর্তে ভিজ্যুয়াল ডিফ টুল চালু
ডিফল্ট উত্তরটি git bash (অর্থাৎ কমান্ড লাইন বা কনসোলে) এ বিভাজক পরিবর্তনগুলি ফেলে দেবে। স্টেজযুক্ত ফাইলের পার্থক্যগুলির একটি দৃশ্যমান উপস্থাপনা পছন্দ করার জন্য, difftool
মধ্যে উপলব্ধ একটি স্ক্রিপ্ট রয়েছে যা difftool
নামে পরিচিত কমান্ড লাইনের পরিবর্তে দেখানো প্রতিটি ফাইলের জন্য একটি ভিজ্যুয়াল ডিসফ টুল চালু করে:
$ git difftool --staged
git diff --staged
হিসাবে এটি একই কাজ করবে, diff টুল চালানো হয় (যেহেতু প্রতিবার একটি ফাইল diff দ্বারা প্রক্রিয়া করা হয়) ছাড়া, এটি ডিফল্ট ভিজ্যুয়াল diff টুল চালু হবে (আমার পরিবেশে, এই kdiff3 হয় ) ।
টুলটি চালু হওয়ার পরে, আপনার ভিজ্যুয়াল diff সরঞ্জামটি বন্ধ না হওয়া পর্যন্ত গিট ডিফ স্ক্রিপ্ট থামবে। অতএব, পরবর্তী প্রতিটি দেখতে আপনাকে প্রতিটি ফাইল বন্ধ করতে হবে।
আপনি সবসময় git কমান্ডের মধ্যে diff
জায়গায় difftool
ব্যবহার করতে পারেন
আপনার সমস্ত ভিজ্যুয়াল git difftool
প্রয়োজনের জন্য, git difftool
সমস্ত বিকল্পগুলি সহ কোন git diff
কমান্ডের জায়গায় কাজ করবে।
উদাহরণস্বরূপ, প্রতিটি ফাইলের জন্য এটি করতে না চাওয়া ছাড়াই চাক্ষুষ ডিফিউ টুল লঞ্চ করার জন্য, -y
বিকল্পটি যোগ করুন (আমি মনে করি সাধারণত আপনি এটি চাইবেন !!):
$ git difftool -y --staged
এই ক্ষেত্রে এটি প্রতিটি ফাইলটিকে ভিজ্যুয়াল ডিফাফ টুলে একসাথে টেনে আনবে, এক সময়ে এক, টুলটি বন্ধ হওয়ার পর পরবর্তীটিকে আনতে হবে।
অথবা Index
সংগঠিত কোনও নির্দিষ্ট ফাইলের পার্থক্যটি দেখতে:
$ git difftool -y --staged <<relative path/filename>>
সমস্ত বিকল্পের জন্য, ম্যান পৃষ্ঠা দেখুন:
$ git difftool --help
ভিজ্যুয়াল গিট টুল সেট আপ করা হচ্ছে
ডিফল্ট ব্যতীত অন্য একটি ভিজ্যুয়াল গিট সরঞ্জাম ব্যবহার করতে, -t <tool>
বিকল্পটি ব্যবহার করুন:
$ git difftool -t <tool> <<other args>>
অথবা ভিন্ন ডিফল্ট ভিজ্যুয়াল ডিফাফ টুল ব্যবহার করতে গিট কনফিগার করার জন্য difftool man পৃষ্ঠাটি দেখুন।
আপনি এই কমান্ড ব্যবহার করতে পারেন।
git diff --cached --name-only
git diff
এর --cached
বিকল্প --cached
ফাইলগুলি পেতে অর্থ, এবং --name-only
বিকল্প অর্থ শুধুমাত্র ফাইলের নাম পেতে।
উল্লেখ্য যে git status -v
এছাড়াও স্টেজেড পরিবর্তন দেখায়! (অর্থাত্ আপনাকে git add
করা দরকার - git add
- কিছু পরিবর্তন। কোন স্টেজ পরিবর্তন নেই, git status -v
সাথে কোন পার্থক্য নেই git status -v
।
এটা যেহেতু Git 1.2.0, ফেব্রুয়ারী 2006 )
তার দীর্ঘ ফর্ম (ডিফল্ট), git status
একটি অনথিভুক্ত "ক্রিয়াপদ" বিকল্প রয়েছে যা আসলে HEAD এবং সূচকের মধ্যে পার্থক্য প্রদর্শন করে।
এবং এটি আরও সম্পূর্ণ হতে চলেছে: " গিট diff উভয় মঞ্চে এবং কাজ গাছ প্রদর্শন করুন? " দেখুন (git 2.3.4+, Q2 2015):
git status -v -v
একটি সহজ গ্রাফিক এই পরিষ্কার করে তোলে:
গিট diff
কাজ নির্দেশিকা এবং সূচক মধ্যে পরিবর্তন দেখায়। এটি কি পরিবর্তন করা হয়েছে তা দেখায়, কিন্তু একটি কমিটির জন্য সংগঠিত হয় না।
গিট diff - ক্যাচ
সূচী এবং HEAD (যা এই শাখায় শেষ কমিট) এর মধ্যে পরিবর্তনগুলি দেখায়। এটি সূচীতে যোগ করা হয়েছে এবং একটি কমিটির জন্য সংগঠিত হয়েছে কি দেখায়।
গিট diff মাথা
কাজের নির্দেশিকা এবং HEAD (যা সূচীতে পরিবর্তনগুলি অন্তর্ভুক্ত) এর মধ্যে সমস্ত পরিবর্তন দেখায়। শেষ কমিট থেকে এই সমস্ত পরিবর্তনগুলি দেখায়, তারা কমিটির জন্য বা না করার জন্য সংগঠিত হয়েছে কিনা।
এছাড়াও :
গিট gitk
সম্পর্কে চিন্তা করুন, gitk
দিয়ে সরবরাহ করা এবং পরিবর্তনগুলি দেখতে খুব দরকারী
ডিফল্ট গিট ডিফার দ্বারা পরিবর্তনগুলি দেখানো হয় যা জিটি আপডেট হওয়া তালিকাগুলির তালিকায় যোগ করা হয় না। কিন্তু যদি আপনি যুক্ত বা স্ট্যাগেড পরিবর্তনগুলি দেখান তবে আপনার অতিরিক্ত বিকল্পগুলি সরবরাহ করতে হবে যা গিটকে জানাতে পারে যে আপনি স্ট্যাগেড বা যুক্ত ফাইলগুলির মধ্যে পার্থক্য চান ।
$ git diff # Default Use
$ git diff --cached # Can be used to show difference after adding the files
$ git diff --staged # Same as 'git diff --cached' mostly used with latest version of git
উদাহরণ
$ git diff
diff --git a/x/y/z.js b/x/y/z.js index 98fc22b..0359d84 100644
--- a/x/y/z.js
+++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) {
- if (a)
+ if (typeof a !== 'undefined')
res = 1;
else
res = 2;
$ git add x/y/z.js
$ git diff
$
ফাইল যোগ করার পরে, আপনি ডিফল্ট 'git diff' ব্যবহার করতে পারবেন না .এটি আপনাকে করতে হবে: -
$ git diff --cached
diff --git a/x/y/z.js b/x/y/z.js index 98fc22b..0359d84 100644
--- a/x/y/z.js
+++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) {
- if (a)
+ if (typeof a !== 'undefined')
res = 1;
else
res = 2;
যদি আপনার স্টেজযুক্ত পরিবর্তনগুলির সাথে একাধিক ফাইল থাকে তবে এটি git add -i
ব্যবহার করতে আরও বেশি ব্যবহারিক হতে পারে, তারপরে 6: diff
নির্বাচন করুন এবং অবশেষে আপনার আগ্রহযুক্ত ফাইলটি নির্বাচন করুন।
সংস্করণ 1.7 থেকে এবং পরে এটি হওয়া উচিত:
git diff --staged
git gui
এবং git-cola
গ্রাফিক্যাল ইউটিলিটিগুলি যা আপনাকে সূচী দেখতে এবং ম্যানিপুলেট করতে দেয়। উভয় স্টেজযুক্ত ফাইলের জন্য সহজ চাক্ষুষ diffs অন্তর্ভুক্ত, এবং git-cola
একটি আরো পরিশীলিত পাশাপাশি চাক্ষুষ diff হাতিয়ার চালু করতে পারেন।
গিট ইনডেক্স থেকে একটি ফাইল অপসারণ কিভাবে আমার ঘনিষ্ঠভাবে সম্পর্কিত উত্তর দেখুন ? , এবং জিটি এই সরকারী ক্যাটালগ - জিআইআই ক্লায়েন্টদের ।