গিটে অঙ্গীকার করার আগে একটি ফাইলের মধ্যে কী কী পরিবর্তন হয়েছে তা আমি কীভাবে দেখতে পারি?


351

আমি লক্ষ করেছি যে এক বা দুটি টিকিটে কাজ করার সময়, আমি যদি সরে যাই তবে আমি নিশ্চিত নই যে আমি কী নিয়ে কাজ করেছি, কী পরিবর্তন হয়েছে, ইত্যাদি।

গিট অ্যাড এবং গিট কমিট করার আগে কোনও প্রদত্ত ফাইলের জন্য পরিবর্তনগুলি দেখার কোনও উপায় আছে কি?

উত্তর:


525

আপনি খুঁজছেন git diff। আপনার সঠিক পরিস্থিতির উপর নির্ভর করে এটি ব্যবহারের জন্য তিনটি কার্যকর উপায় রয়েছে:

# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]

এটি ডিরেক্টরিগুলিতে পুনরাবৃত্তভাবে কাজ করবে এবং যদি কোনও পথ দেওয়া না হয় তবে এটি সমস্ত পরিবর্তন দেখায়।


1
@ সার্ভিলাক্স 2 না, কোনও যুক্তি ছাড়াই গিট ডিফার্ক চালান - উত্তরের শেষ বাক্যটিতে যেমন বলা হয়েছে যে যদি কোনও পথ দেওয়া না হয় তবে এটি সমস্ত পরিবর্তন দেখায়। (চালু বন্ধনী [filename]একটি ঐচ্ছিক যুক্তি নির্দেশ করে।) সঙ্গে *আপনি যে ফাইলগুলি শেল তালিকা লেট করছি সব, তাই আপনি যদি একটি সাব-আছেন আপনি শুধুমাত্র যে সাব (না পুরো রেপো) অনেক কিছু পাবেন, এবং আপনি ' লুকানো ফাইলগুলিতে পরিবর্তনগুলি মিস করব।
ক্যাসাবেল

# বর্তমান প্রতিশ্রুতি এবং সূচকের মধ্যে পার্থক্য দেখান # এটি যা আপনি গিট ডিফ-কেচড [ফাইল নাম] এর প্রতিশ্রুতি দিচ্ছেন তার অর্থ এই নয়: # বর্তমান কমিট এবং ইনডেক্সের মধ্যে পার্থক্য দেখান # যা আপনি যার সম্পর্কে থেকে ধাক্কা ? গিট ডিফ
অফারুক

3
একটি ফাইল যুক্ত করার পরে তৈরি হওয়া পার্থক্যগুলি দেখতে (যেমন, "গিট অ্যাড" এর পরে), "গিট ডিফ
স্টেজড

ওহ, কেন এত জটিল ?! যদি আমরা ডজন ফাইল একটি দম্পতি? .. আছে শুধু Git ইন্টারফেসে অভিযোগ ... হ্যাঁ, মনে git add -pসব ফাইল পরিদর্শন করা একটি বিকল্প।
কারবি

@ জেফ্রমি - দয়া করে git diff --staged [filename]আপনার মূল উত্তরে যুক্ত করার বিষয়টি বিবেচনা করুন কারণ এটি প্রায়শই প্রয়োজন।
থারস্টন



8

আমার git add -pজন্য সবচেয়ে কার্যকর উপায় (এবং আমি গিট বিকাশকারীদের দ্বারা আমি মনে করি?) সমস্ত অনাস্থাবিহীন পরিবর্তনগুলি পর্যালোচনা করার জন্য (এটি প্রতিটি ফাইলের জন্য পৃথক দেখায়), পরিবর্তনের একটি ভাল সেট বেছে নিন যা প্রতিশ্রুতিবদ্ধ হওয়া উচিত, তারপরে যখন আপনার এই সমস্ত মঞ্চস্থ করে, তারপরে ব্যবহার করুন git commitএবং পরবর্তী প্রতিশ্রুতিটির জন্য পুনরাবৃত্তি করুন। তারপরে আপনি প্রতিটি প্রতিশ্রুতিবদ্ধকরণকে বিভিন্ন ফাইলের মধ্যে স্থান দখল করে থাকলেও পরিবর্তনের একটি দরকারী বা অর্থবহ সেট হতে পারেন। আমি প্রতিটি টিকিট বা অনুরূপ ক্রিয়াকলাপের জন্য একটি নতুন শাখা তৈরি করার পরামর্শ দিচ্ছি এবং তাদের ব্যবহার করে checkout(সম্ভবত git stashআপনি যদি স্যুইচিংয়ের আগে প্রতিশ্রুতি নিতে চান না তবে ব্যবহার করে ) স্যুইচ করুন, যদিও আপনি অনেক দ্রুত পরিবর্তন করছেন তবে এটি ব্যথা হতে পারে। প্রায়শই মার্জ করতে ভুলবেন না।


গিটের পরিবর্তে ফাইল নাম ব্যবহার করে গিট অ্যাড-পি ব্যবহার করবেন?
টিমোথি টি।

1
গিট অ্যাড-পি হ'ল মঞ্চের সংমিশ্রণ, আপনি যে পরিবর্তনগুলি পর্যায়ক্রমে করতে পারেন তা দেখে এবং সেগুলি ইন্টারেক্টিভ পদ্ধতিতে একে একে বেছে নিয়েছেন। গিট অ্যাড-পি-তে আরও জানতে গিটের একটি ফাইলের কেবলমাত্র অঙ্গীকার দেখুন ।
অ্যাঞ্জেলস অ্যাসোনাইটিস

5

git diff

কার্যক্ষম গাছ এবং সূচক বা গাছের মধ্যে পরিবর্তন, সূচি এবং গাছের মধ্যে পরিবর্তন, দুটি গাছের মধ্যে পরিবর্তন বা ডিস্কের দুটি ফাইলের মধ্যে পরিবর্তনগুলি দেখান।


উদ্ধৃতিটি কিছুটা বেশি - ডিফল্টরূপে এটি প্রথম তুলনা সম্পাদন করে: কার্যকারী গাছ এবং সূচকের মধ্যে।
ক্যাসকেবেল

4

মনে রাখবেন, আপনি ফাইলগুলি বদলে প্রতিশ্রুতি দিচ্ছেন ।

এই কারণে, এটি খুব বিরল যে আমি git add -pআমার পরিবর্তনগুলি যুক্ত করতে (বা ম্যাজিট সমতুল্য) ব্যবহার করি না ।


2
গিট পরিবর্তনগুলির সাথে মোকাবিলা করে না - এটি নিয়ে ভাবতে চেষ্টা করে যেন এটি বিভ্রান্তি এবং ভুলগুলির প্রাথমিক উত্স। গিট স্ন্যাপশট সঙ্গে ডিল।
ক্রিস ডড

3
git diff <path>/filename

ফাইলটি ফাইলের আগ পর্যন্ত আপনার সম্পূর্ণ সিস্টেমের পথ হতে পারে বা
আপনি যদি প্রকল্পে থাকেন তবে আপনি পরিবর্তিত ফাইল
পাথটিও ব্যবহার করতে পারেন পরিবর্তিত ফাইলগুলির জন্য:git status


2

ভাল, আমার ক্ষেত্রে যখন আপনি ফাইল তালিকা সম্পর্কে যত্ন নিতে চান না। শুধু তাদের সব দেখান।

যখন আপনি ইতিমধ্যে git addআপনার ফাইলগুলির তালিকাটি নিয়ে ছুটে গেছেন :

$ git diff --cached $(git diff --cached --name-only)

এর আরও সাম্প্রতিক সংস্করণগুলিতে gitআপনি --stagedএটিও ব্যবহার করতে পারেন যা একটি প্রতিশব্দ --cached

এটি ফাইল যুক্ত না করে --cachedবিকল্প ছাড়াও ব্যবহার করা যেতে পারে ।

$ git diff $(git diff --name-only)

"ক্যাশেড" বিকল্পের জন্য গিট কমান্ড ওরফে:

$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'

3
গিট ডিফ
ক্যাশেড

1

আপনার নিজের গিট রেপোতে যান, তারপরে নীচের কমান্ডটি চালান:

গিট ডিফ ফাইল নাম

এটি পরিবর্তিত চিহ্নযুক্ত ফাইলটি ফাইলটি খুলবে, ফাইলটি স্ক্রোল করতে রিটার্ন / এন্টার টিপুন।

পিএস ফাইলনামে ফাইলের পুরো পথ অন্তর্ভুক্ত করা উচিত নয়ত আপনি ফাইলের সংশ্লিষ্ট ডিরেক্টরি / ফোল্ডারে গিয়ে পুরো ফাইল পাথ ছাড়াই চালাতে পারবেন


0

আপনি গিট-বান্ধব পাঠ্য সম্পাদকও ব্যবহার করতে পারেন। তারা সংশোধিত রেখাগুলিতে রঙ দেখায়, যুক্ত রেখার জন্য অন্য রঙ, মুছে ফেলা লাইনের জন্য অন্য রঙ ইত্যাদি color

এটির একটি ভাল পাঠ্য সম্পাদক যা হ'ল গিটহাবের পরমাণু 1.0

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