উত্তর:
হ্যাঁ, আপনি যদি নিশ্চিত হন যে গিটটি আপনার শেলের চেয়ে গ্লোব প্রসারিত করে তবে এটি যে কোনও স্তরের সাথে মিলবে তাই এর মতো (উদ্ধৃতিগুলি গুরুত্বপূর্ণ) ভাল কাজ করা উচিত।
git diff -- '*.c' '*.h'
git diff -- *.{c,h,etc}
git diff master HEAD -- "*filename.txt"
git diff master HEAD --name-only
''
) এছাড়াও গুরুত্বপূর্ণ! git diff -- src/*.js
হওয়া উচিতgit diff -- 'src/*.js'
পুনরাবৃত্তভাবে ফাইলগুলি অন্তর্ভুক্ত করতে (বর্তমান দির সহ) এটি আমার জন্য কাজ করেছে:
git diff -- '***.py'
git diff -- '***.py' ':!.Trashes'
হয় আপনার শেলের গ্লোবস্টার ব্যবহার করুন (যা পুনরাবৃত্তি অনুসন্ধান করে) 1 , 2 :
shopt -s globstar
git diff -- *.py **/*.py
বা সন্ধান ব্যবহার করুন:
find -name '*.py' -print0 | xargs -0 git diff --
এ দুটিই বিশেষ-নাম এবং সাদা স্থানের প্রমাণ। যদিও আপনি .py এক্সটেনশনযুক্ত ডিরেক্টরিগুলির জন্য ফিল্টার করতে চাইতে পারেন :)
1 আমি git diff -- {.,**}/*.py
সাধারণত করতে পছন্দ করি
2 যখন গ্লোবস্টার সক্ষম থাকে তখন git diff -- **/*.py
ইতিমধ্যে অন্তর্ভুক্ত থাকে ./*.py
। বাশের ম্যানপেজে: 'যদি একটি / এর পরে অনুসরণ করা হয় তবে দুটি সংলগ্ন * গুলি কেবল ডিরেক্টরি এবং উপ-ডিরেক্টরিগুলির সাথে মিলবে।'
বর্ধনের জন্য কমান্ড লাইন আর্গুমেন্ট।
git diff *.py
বিকল্প, আপনি নল করতে পারেন find
মধ্যে git diff
:
find . -name '*.py' -type f | git diff --
git diff *.py
চিৎকার শিরোনামগুলি দিয়ে এবং ছাড়াই আপনি যথেষ্ট হতে পারতেন
গিট সংস্করণ ২.১৮.০-তে পরীক্ষিত হিসাবে, ফাইল এক্সটেনশানটি ডাবল উদ্ধৃতি দিয়ে উদ্ধৃত করা উচিত। আপনি যদি টানার পরে আপনার স্থানীয় সংগ্রহস্থল এবং দূরবর্তী একের মধ্যে শেষ পার্থক্যগুলি সন্ধান করতে চান তবে আপনি ব্যবহার করতে পারেন:
git diff YourBranchName@{1} YourBranchName --name-only "*.YourFileExtionsion"
উদাহরণ স্বরূপ:
git diff master@{1} origin/master --name-only "*.cs"
git diff master@{1} origin/master --name-only -- "*.cs"
উপরের উত্তরগুলির মধ্যে কোনওটি git bash
উইন্ডোতে আমার জন্য কাজ করছে বলে মনে হয় না । আমি নিশ্চিত নই যে এটি কোনও সংস্করণ জিনিস (আমি 1.8.4 ব্যবহার করছি) বা উইন্ডোজ / ব্যাশ জিনিস; এছাড়াও, আমার ক্ষেত্রে, আমি দুটি শাখার মধ্যে পৃথক করতে চেয়েছিলাম যেখানে প্রতিটি শাখার অতিরিক্ত শাখাগুলি অন্য শাখায় উপস্থিত ছিল না (সুতরাং 'খুঁজে বের করুন' ভিত্তিকগুলি অপসারণযোগ্য)।
যাইহোক এটি আমার পক্ষে কাজ করেছে (উদাহরণস্বরূপ, পাইথন ফাইলগুলির মধ্যে একটি পৃথক সন্ধান):
git diff branch1 branch2 -- `git diff --summary branch1 branch2 | egrep '\.py$' | cut -d ' ' -f 5`
git diff
শুধুমাত্র স্টেস্ট না করা ফাইলগুলিতে পার্থক্য দেখাবে।
আমি এই প্রশ্নটি খুঁজে পেয়েছি কারণ আমি .info
ফাইলগুলি বাদ দিতে চেয়েছিলাম git diff
। আমি এটি দিয়ে স্টেজ করে এটি অর্জন করেছি git add *.info
, যা ফাইলগুলির বামকে হ্রাস করে।
আমি এটি দিয়ে আহত:
commit=<the_commit_hash_goes_here> && git diff --name-only $commit | grep -i Test | egrep -v '\.sql$' | xargs git diff $commit --
এটি নির্দিষ্ট প্রতিশ্রুতিবদ্ধতার জন্য ভিন্নতা দেখায় কেবলমাত্র যদি ফাইলনামে 'পরীক্ষা' শব্দটি থাকে (কেস সংবেদনশীল) এবং .sql
আপনার ক্ষেত্রে প্রয়োজনীয় হিসাবে পাইপলাইনটি সংশোধন করে না শেষ হয় with