গিট স্ট্যাটাস - কেবলমাত্র কোনও নির্দিষ্ট ডিরেক্টরিতে পরিবর্তনগুলি দেখানোর কোনও উপায় আছে?


136

আমি git statusশো হিসাবে সর্বশেষ প্রতিশ্রুতিবদ্ধ হওয়া থেকে সংশোধিত ফাইলগুলির একটি তালিকা দেখতে চাই , তবে আমি কেবলমাত্র একটি ডিরেক্টরিতে অবস্থিত ফাইলগুলি সম্পর্কে যত্নশীল। এই কাজ করতে একটি উপায় আছে কি? আমি চেষ্টা করেছি git status <directory>, তবে দেখে মনে হচ্ছে এটি সম্পূর্ণ আলাদা কিছু করেছে (সমস্ত পরিবর্তিত ফাইলের তালিকা তৈরি করুন, যেমনটি আমি git add <directory>প্রথমে লিখলে তা হবে )।

গিট-স্ট্যাটাসের জন্য ডকুমেন্টেশন খুব বেশি কিছু বলে না, এটি গিট-কমিটের মতো একই বিকল্পগুলি গ্রহণ করে (কিন্তু গিট-কমিটের উদ্দেশ্য পরিবর্তিত ফাইলগুলির তালিকা প্রদর্শন নয়) apart

উত্তর:


199

ডিরেক্টরি মধ্যে থেকে:

git status .

আপনি যে কোনও পাথ সত্যই ব্যবহার করতে পারেন, এই বাক্য গঠনটি ব্যবহার করুন:

git status <directoryPath>

উদাহরণস্বরূপ "আমার / শান্ত / পথ / এখানে" পাথের সাথে ডিরেক্টরিতে

git status my/cool/path/here

3
ধন্যবাদ! এছাড়াও, 'গিট স্ট্যাটাস <ডিরেক্টরি>> যা প্রত্যাশা করছিল তা করছে বলে মনে হচ্ছে - এর আগে আমার কী সমস্যা ছিল তা আমি সত্যই মনে করতে পারি না ... সম্ভবত এটি ভিন্ন গিট সংস্করণের বিষয়, ডুনো।
কুবা সুদার

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

3
হ্যাঁ, আচরণটি অবশ্যই স্পষ্টভাবে 1.6 থেকে 1.7 এ পরিবর্তিত হয়েছে। এটি 1.7 এ ওপি প্রয়োজনীয়তা পূরণ করে তবে পুরো রেপোতে 1.6 অবিরত থাকে।
কলগুর

31

git statusএকই বিকল্পগুলি গ্রহণ করার কারণটি git commitহ'ল উদ্দেশ্যটি git statusহ'ল আপনি যা যা করেছেন সেই একই বিকল্পগুলির সাথে প্রতিশ্রুতিবদ্ধ হলে কী ঘটবে তা দেখানো git status। এই ক্ষেত্রে git statusসত্যই git commit --preview

আপনি যা চান তা পেতে আপনি এটি করতে পারেন যা পর্যায়ক্রমে পরিবর্তনগুলি দেখায়:

git diff --stat --cached -- <directory_of_interest>

এবং এটি, যা অনাস্থাবিহীন পরিবর্তনগুলি দেখায়:

git diff --stat -- <directory_of_interest>

বা এটি উভয় দেখায়:

git diff --stat HEAD -- <directory_of_interest>

2
এটি আংশিকভাবে কাজ করে, যদিও এটি নতুনভাবে তৈরি (চিহ্নবিহীন) ফাইলগুলি প্রদর্শন করে না যেমন গিট-স্ট্যাটাসটি করে ...
কুবা সুদার

ঠিক আছে, আপনার কি রিপোর্ট দরকার তা আমি নিশ্চিত ছিলাম না। আপনার যদি স্টেস্ট না করা ফাইলগুলির জন্য পরীক্ষা করতে হয় তবে চেষ্টা করুন git ls-files --others <directory_in_question>বা ls-files -o
সিবি বেইলি

git ls-files -oআনস্টেজড ডিরেক্টরিগুলিতে ফাইলগুলি পুনরাবৃত্তভাবে git statusদেখায় , যেখানে কেবল শীর্ষ স্তরের ডিরেক্টরি দেখায়। এবং একটি রচনা git diff, git ls-filesআউটপুট এবং সমস্ত রঙ কোডিং ইত্যাদি পুনরায় তৈরি করতে হবে যা git statusসরবরাহ করে যদি এটির জন্য প্রতিস্থাপন হয় git status। আমিও সত্যিই এর সমাধান দেখতে চাই!
পিটার ভি।


2

একটি নোট হিসাবে, যদি আপনি গিট ডিরেক্টরিতে না গিয়ে গিটের পরিসংখ্যানগুলি পরীক্ষা করতে সহজ করেন;

### ফাইল তৈরি করুন
sudo ন্যানো / usr / স্থানীয় / বিন / gitstat

### এটি .ুকিয়ে দিন

#! / usr / বিন / এনভ বাশ

Dir = $ 1

যদি [[$ দির == ""]]]; তারপর
    প্রতিধ্বনি "ডিরেক্টরি প্রয়োজন!"
    প্রস্থান
ফাই

প্রতিধ্বনি "" ir দির "এর জন্য গিট স্ট্যাটাস।

গিট --git-dir = ir dir / .git - ওয়ার্ক-ট্রি = $ দির ডিফ - স্ট্যাট

### এক্সিকিউট পারম দিন give
sudo chmod + x / usr / local / bin / gitstat

এবং যে সহজ স্ক্রিপ্ট কলিং: gitstat /path/to/foo-project। এছাড়াও আপনি এটি ব্যবহার করতে পারেন যখন foo-projectমাত্র করছেন gitstat .এবং তাই চেয়ে খাটো অনুমান git status -s, git diff --statবা git diff --stat HEADযদি আপনার সবসময় GUI এর পরিবর্তে কনসোল ব্যবহার করছেন।

ক্রেডিট:

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