উত্তর:
git diff --name-only SHA1 SHA2
কমিটগুলি সনাক্ত করতে আপনাকে কেবলমাত্র SHA এর যথেষ্ট পরিমাণ অন্তর্ভুক্ত করতে হবে। উদাহরণস্বরূপ আপনিও করতে পারেন
git diff --name-only HEAD~10 HEAD~5
দশম সর্বশেষ প্রতিশ্রুতি এবং পঞ্চম সর্বশেষ (বা তাই) এর মধ্যে পার্থক্যগুলি দেখতে।
git show --name-only SHA1
।
git diff --name-status [TAG|SHA1]
ফাইলগুলিতেও কী অপারেশন করা হয়েছিল তা দেখায়
git diff --name-status
যুক্ত করা ফাইলগুলি দেখাতে চায় না বলে মনে হচ্ছে। @sschuberth নির্দিষ্ট git show
, যা আমার জন্য সঠিকভাবে কাজ বলে মনে হচ্ছে না: git show --pretty=format: --name-status
। কেবল করা git show --name-status
কিছুটা আরও তথ্য দেয়, তবে তবুও সুন্দর এবং ঘন ... এটি আমার নতুন
git diff --name-status [SHA1 [SHA2]]
কেবল - নাম-এর মতো, আপনি যদি ফাইলের (সংশোধিত, মুছে ফেলা, যোগ করা ...) কী ঘটেছিল সে সম্পর্কে একটি সাধারণ উপসর্গ না পান
git log --name-status --oneline [SHA1..SHA2]
অনুরূপ, তবে কমিটগুলি প্রতিশ্রুতিবদ্ধ বার্তার পরে তালিকাভুক্ত করা হয়, যাতে আপনি কখন ফাইলটি পরিবর্তন করা হয়েছিল তা দেখতে পাবেন।
যদি আপনি ঠিক কি নির্দিষ্ট ফাইল ঘটেছে প্রতি আগ্রহ দেখিয়েছেন / ফোল্ডার সংযুক্ত করতে পারবেন -- <filename> [<filename>...]
করার git log
সংস্করণ।
যদি আপনি একক প্রতিশ্রুতিবদ্ধতার জন্য কী ঘটে তা দেখতে চান তবে এটিকে SHA1 কল করুন, তারপরে করুন
git log --name-status --oneline [SHA1^..SHA1]
ফাইলের স্ট্যাটাসের পতাকাগুলি:
এম সংশোধিত - ফাইলটি সংশোধন করা হয়েছে
সি কপি-সম্পাদনা - ফাইলটি অনুলিপি করা হয়েছে এবং
পুনরায় নামকরণ-সম্পাদনা করা হয়েছে - ফাইলটির পুনরায় নামকরণ ও সংশোধন করা হয়েছে
একটি যুক্ত - ফাইল যুক্ত করা হয়েছে
ডি মুছে ফেলা হয়েছে - ফাইলটি মুছে ফেলা হয়েছে
ইউআরমেজড - একীভূত হওয়ার পরে ফাইলের দ্বন্দ্ব রয়েছে
--relative[=<path>]
বিকল্প আপনাকে সাহায্য করতে পারি, আমি নিশ্চিত নই। অন্যথায় সবসময় | erep -v '(.tmp|.foo|.dontwant)$'
...
দেখে মনে হচ্ছে কেউ স্যুইচটির কথা উল্লেখ করেনি --stat
:
$ git diff --stat HEAD~5 HEAD
.../java/org/apache/calcite/rex/RexSimplify.java | 50 +++++++++++++++++-----
.../apache/calcite/sql/fun/SqlTrimFunction.java | 2 +-
.../apache/calcite/sql2rel/SqlToRelConverter.java | 16 +++++++
.../org/apache/calcite/util/SaffronProperties.java | 19 ++++----
.../org/apache/calcite/test/RexProgramTest.java | 24 +++++++++++
.../apache/calcite/test/SqlToRelConverterTest.java | 8 ++++
.../apache/calcite/test/SqlToRelConverterTest.xml | 15 +++++++
pom.xml | 2 +-
.../apache/calcite/adapter/spark/SparkRules.java | 7 +--
9 files changed, 117 insertions(+), 26 deletions(-)
এছাড়াও আছে --numstat
$ git diff --numstat HEAD~5 HEAD
40 10 core/src/main/java/org/apache/calcite/rex/RexSimplify.java
1 1 core/src/main/java/org/apache/calcite/sql/fun/SqlTrimFunction.java
16 0 core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
8 11 core/src/main/java/org/apache/calcite/util/SaffronProperties.java
24 0 core/src/test/java/org/apache/calcite/test/RexProgramTest.java
8 0 core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
15 0 core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
1 1 pom.xml
4 3 spark/src/main/java/org/apache/calcite/adapter/spark/SparkRules.java
এবং --shortstat
$ git diff --shortstat HEAD~5 HEAD
9 files changed, 117 insertions(+), 26 deletions(-)
তবে অন্য শাখার সাথে আপনার শাখা এবং এর সাধারণ পূর্বপুরুষের মধ্যে ফাইলগুলি পরিবর্তিত হয়েছে তা দেখার জন্য (উত্স / মাস্টার বলুন):
git diff --name-only `git merge-base origin/master HEAD`
git diffstatus master
বা অনুরূপ বলতে পারি , যা উপরেরটিকে ট্রিগার করে।
git show --pretty=format: --name-only origin/master..
।
git diff --name-only HEAD...master
(তিনটি বিন্দু নোট করুন)। বিস্তারিত ব্যাখ্যার জন্য এখানে দেখুন ।
git diff --name-only master..branch
গিথুব পিআর তালিকার সাথে মেলে না। এইভাবে আরও সুনির্দিষ্ট তবে যাইহোক আমার কাছে গিথাব পিআর-তে 171 বনাম 171 ফাইল রয়েছে। ( merge-base
আমার 228 বনাম 171 ছাড়াই )
@ আর্টফুলবোটের উত্তর পরিপূরক করতে, আপনি যদি দুটি শাখার মধ্যে পরিবর্তিত ফাইলগুলি দেখাতে চান:
git diff --name-status mybranch..myotherbranch
অগ্রাধিকার সম্পর্কে সাবধান। আপনি যদি নতুন শাখাটি প্রথমে রাখেন তবে এতে ফাইলগুলি যুক্ত না করে মুছে ফেলা হবে।
একটি যুক্ত করা grep
জিনিসগুলি আরও সংশোধন করতে পারে:
git diff --name-status mybranch..myotherbranch | grep "A\t"
এরপরে কেবল যুক্ত হওয়া ফাইলগুলি প্রদর্শিত হবে myotherbranch
।
--diff-filter
যা স্থানীয়ভাবে এই কার্যকারিতা দেয় যার অর্থ ভুল ফলাফলের কম সম্ভাবনা (যেমন মিথ্যা ধনাত্মক)
আপনার নীচে উপনাম যুক্ত করুন ~/.bash_profile
, তারপরে চালান source ~/.bash_profile
; এখন যে কোনও সময় showfiles
আপনার গিট সংগ্রহস্থল থেকে শেষ প্রতিশ্রুতিবদ্ধভাবে চালিত হওয়া আপডেট হওয়া ফাইলগুলি দেখা দরকার ।
alias showfiles='git show --pretty="format:" --name-only'
git config --global alias.showfiles 'show --pretty="format:" --name-only'
বানাতে git showfiles
।
এটি ফাইলগুলির পরিবর্তনগুলি প্রদর্শন করবে:
git diff --word-diff SHA1 SHA2
গিট লগ ব্যবহার করুন - ব্যাখ্যাটি = অনলাইনলাইন> সি: \ ফাইলের নাম.লগ
যা কেবলমাত্র একটি অনলাইনলাইনে লগ করবে (- ব্যাখ্যাটি = অনলাইন) পরিবর্তিত ফাইলটির নাম দেয়। আপনার আউটপুট ফাইলে সমস্ত বিবরণ লগ করবে।
git log --pretty=oneline
আমাকে দেয় শুধুমাত্র রয়েছে SHA এবং Git 2.10.1 ব্যবহার বার্তা কমিট
যেমন Artfulrobot তার উত্তরে বলেছেন:
git diff --name-status [SHA1 [SHA2]]
আমার উদাহরণ:
git diff --name-status 78a09k12067c24d8f117886c4723ccf111af4997
4b95d595812211553070046bf2ebd807c0862cca
M views/layouts/default.ctp
M webroot/css/theme.css
A webroot/img/theme/logo.png
নিম্নলিখিতটি আমার পক্ষে ভাল কাজ করে:
$ git show --name-only --format=tformat: SHA1..SHA2
এটি একটি একক প্রতিশ্রুতি দিয়েও ব্যবহার করা যেতে পারে:
git show --name-only --format=tformat: SHA1
যা জেনকিনসে ব্যবহারের জন্য কার্যকর যেখানে আপনাকে চেঞ্জসেট এসএইচএ'র একটি তালিকা সরবরাহ করা হয়েছে এবং কোন ফাইলগুলি পরিবর্তন করা হয়েছে তা দেখতে তাদের পুনরাবৃত্তি করতে চান।
এই উপরে উত্তর একটি দম্পতি অনুরূপ, কিন্তু ব্যবহার tformat:
বদলে format:
করে মধ্যবর্তী বিভাজক ব্যবধান সরায়।
git diff --name-status
আমি উপর ভিত্তি করে গিট-ডিফিউভিউ গিট এক্সটেনশন লিখেছি যা দুটি পথের মধ্যে কী পরিবর্তিত হয়েছে তার একটি শ্রেণিবিন্যাসের গাছের দর্শন দেয়।