গিট: আমার শেষ প্রতিশ্রুতি দেখুন


388

আমি যখন সর্বশেষ প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতিবদ্ধ ফাইলগুলি ঠিক সেইভাবে দেখতে চাই যখন আমি তালিকাটি দেখেছিলাম ঠিক তেমনই git commit। দুর্ভাগ্যক্রমে অনুসন্ধান করা হচ্ছে

git "last commit" log

গুগল আমাকে কোথাও পায়। এবং

git diff HEAD^..HEAD

অবশ্যই আমার যা প্রয়োজন তা নয়, যেহেতু এটি পরিবর্তনের সাহসও স্পষ্ট করে।


34
ধন্যবাদ, আমার আসলে দরকার ছিল git diff HEAD^..HEAD!
আমেন

উত্তর:


374

মন্তব্যের মাধ্যমে নির্ধারিত হিসাবে দেখা যাচ্ছে যে ওপি অনুসন্ধান করছে

$ git log --name-status HEAD^..HEAD

এটি আপনি যে আউটপুটটি পাবেন svn statusবা তার কাছাকাছি যা খুব কাছাকাছি svn log -v, যা বিপর্যয় থেকে গিটে আগত অনেক লোকের সাথে পরিচিত।

--name-statusএখানে কী! এই প্রশ্নে অন্যান্য লোকেরা দ্বারা উল্লিখিত আপনি ব্যবহার করতে পারেন git log -1, git showএবং git diffআউটপুট একই সাজানোর জন্য। ব্যক্তিগতভাবে, আমি git show <rev>পৃথক সংশোধনগুলি দেখার সময় ব্যবহার করার প্রবণতা রাখি ।


আমি স্বীকার করি, মন্তব্যগুলি আমার প্রশ্ন সাফ করার পক্ষে সবচেয়ে ভাল উপায় নয় :) ধন্যবাদ মাইকেপ
ড্যান রোজনস্টার্ক

4
আমি মনে করি এটি শেষ প্রতিশ্রুতি দেয়, না? সুতরাং, আমার শেষের জন্য আমি করবgit log --stat --author nroose -n 1
22

1
আর সংক্ষিপ্ত এবং Git প্রদর্শনী --name-স্থিতিটি --oneline সঙ্গে সংক্ষিপ্ত করা যেতে পারে
jasonleonhard

এতো স্পষ্ট! আমার অনুমান করা উচিত ছিল যে এটি এত সাধারণ কিছু কারণ এটি সার্বক্ষণিকভাবে ঘটে যাওয়া কোয়েরির ধরণ।
স্কট বিগস 16

1
বল প্রয়োগের ক্ষেত্রে এই চাপটি সাম্প্রতিক সময়ের (সময় অনুসারে) প্রতিশ্রুতি না দিয়ে শেষ প্যাচটি দেখায় ... কিছু ব্যবহারের ক্ষেত্রে জটিল হতে পারে
অলিক্স

207

গিট শো ব্যবহার করুন :

git show --summary

এটি তৈরি বা সরানো ফাইলগুলির নামগুলি দেখায়, তবে পরিবর্তিত ফাইলগুলির নাম নয় । git showকমান্ড আউটপুট বিন্যাসের যে করে সম্পর্কে তথ্য বিভিন্ন ধরনের দেন বিভিন্ন ধরণের সমর্থন করে।


1
@ জামেসান git show --statকাছে, তবে ফাইলটির পাশেই 'মোডিফাইড ' বা 'যুক্ত' শব্দটি দেখা যায় না এমন দৃশ্য নেই?
ড্যান রোজনস্টার্ক

3
আপনি যদি কেবলমাত্র ফাইলগুলির নাম চান (তার চেয়ে কমও --stat), আপনি দেখতে --name-statusএবং --name-onlyস্যুইচ করতেও চাইতে পারেন ।
মাইক সেপলোজিটস

1
@ মাইকসেপ, আসলে এটি আমার প্রয়োজন ছিল। আপনি যদি এটির উত্তর দেন তবে আমি এটিকে সেরা উত্তর চিহ্নিত করব, যেহেতু আমার কাছে এটি ছিল। আমি ব্যবহার করছিgit log --name-status HEAD^..HEAD
ড্যান রোজনস্টার্ক

এটি দেওয়া অফারগুলির সহজ সমাধান।
ম্যাথু



42

এর পক্ষে সহজতম আদেশটি হ'ল:

git show --name-only

এটি সর্বশেষ প্রতিশ্রুতি অনুসারে কেবল ফাইলগুলি তালিকাভুক্ত করে এবং আপনাকে সম্পূর্ণ সাহস দেয় না

আউটপুট হচ্ছে এর একটি উদাহরণ:

commit  fkh889hiuhb069e44254b4925d2b580a602
Author: Kylo Ren <Kylo@darkside.empire.gov>
Date:   Sat May 4 16:50:32 2168 -0700

Changed shield frequencies to prevent Millennium Falcon landing

 www/controllers/landing_ba_controller.js             
 www/controllers/landing_b_controller.js            
 www/controllers/landing_bp_controller.js          
 www/controllers/landing_h_controller.js          
 www/controllers/landing_w_controller.js  
 www/htdocs/robots.txt                        
 www/htdocs/templates/shields_FAQ.html       

7
--name-statusপরিবর্তে বিবেচনা করুন --name-only
একিউম্যানাস

5
সমস্যাটি এখনই আছে .. সাম্রাজ্যটি প্রতিরক্ষা গ্রিডের জন্য পিএইচপি ব্যবহার করছে!
পিটিএম

3
স্ট্যাকওভারফ্লোতে আমি সেরা উদাহরণটি দেখেছি! "আপনারা সন্ধান করছেন এমন কমিটগুলি নয়" "
স্কট বিগস


21

শেষ প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি দেখতে

git show HEAD

অথবা দ্বিতীয় শেষ প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি দেখতে

git show HEAD~1

এবং আরও জন্য প্রয়োজনীয় প্রতিশ্রুতি সিকোয়েন্স নম্বর দিয়ে উপরের '1' প্রতিস্থাপন করুন।


15

আপনি বেশ কয়েকটি কমিটি করার পরে বা কোনও সংগ্রহস্থল ক্লোন / টান দেওয়ার পরে, আপনি কি কমিট করেছেন তা দেখতে চাইতে পারেন। আপনার প্রতিশ্রুতিবদ্ধ ইতিহাস দেখার জন্য কেবলমাত্র এই সাধারণ সমাধানগুলি পরীক্ষা করুন (সর্বশেষ / সাম্প্রতিক প্রতিশ্রুতি থেকে প্রথমটির জন্য)।

গত কমিট জন্য, শুধু এই কমান্ড অগ্নি: git log -1। আরও আকর্ষণীয় জিনিসের জন্য নীচে দেখুন -

  1. কমিট আইডি (SHA-1 চেকসাম), লেখকের নাম <মেইল আইডি>, সময় সহ তারিখ এবং প্রতিশ্রুতিবদ্ধ বার্তা দেখতে -

    git log
    
  2. আরও কিছু পরিসংখ্যান দেখতে যেমন কমিটের সময় পরিবর্তিত সমস্ত ফাইলের নাম এবং সন্নিবেশ / মোছার সংখ্যা of কোডটি পর্যালোচনা করার সময় এটি খুব কাজে আসে -

    git log --stat
    
  3. কিছু চমত্কার বিন্যাসে প্রতিশ্রুতিবদ্ধ ইতিহাস দেখতে :) :) (এটি কিছু প্রাক-বিল্ড অপশন দ্বারা অনুসরণ করা হয়) -

    • আপনার যদি পর্যালোচনা করার জন্য অনেক বেশি প্রতিশ্রুতি থাকে তবে এই কমান্ডটি তাদের ঝরঝরে একটি একক লাইনে দেখায়:

      git log --pretty=oneline
      
    • আপনার কমিটের সংক্ষিপ্ত, মাঝারি, পূর্ণ, বা আরও বিশদ দেখতে, যথাক্রমে নিম্নলিখিতটি ব্যবহার করুন -

      git log --pretty=short
      git log --pretty=medium
      git log --pretty=full
      git log --pretty=fuller
      
  4. এমনকি formatবিকল্পটি ব্যবহার করে আপনি নিজের আউটপুট ফর্ম্যাটটিও ব্যবহার করতে পারেন -

    git log --pretty=format:"%an, %ae - %s"
    

    যেখানে% একজন - লেখকের নাম,% ae - লেখক ইমেল,% s - প্রতিশ্রুতি বিষয় ইত্যাদি

এটি আপনাকে আপনার প্রতিশ্রুতিবদ্ধ ইতিহাস সম্পর্কে সহায়তা করতে পারে। আরও তথ্যের জন্য, এখানে ক্লিক করুন


11
it গিট ডিফ - নামমাত্র কেবল হেড HE .. হেড

অথবা

it গিট লগ - নাম-কেবলমাত্র হেড HE .. হেড

এটাই আমার বেশ প্রয়োজন। কোনও কিছু কীভাবে বলা হচ্ছে যে এটি সংশোধিত, সংযুক্ত বা মুছে ফেলা হয়েছে? কোনও চিঠি দিয়ে, এসএনএন-স্টাইল?
ড্যান রোজনস্টার্ক

1
এখন বুঝতে পেরেছি. git log --name-status HEAD^..HEAD
ড্যান রোজনস্টার্ক

2
পরিবর্তে git log ... HEAD^..HEAD, এটি ব্যবহার করা সহজ git log ... -1 HEAD, না আরও ভাল git show ... HEAD?
জাকুব নরবস্কি

বেশ কয়েকটি স্ট্যাকওভারফ্লো পোস্টের মাধ্যমে ব্রাউজ করার পরে, এটি আমার প্রয়োজনীয় উত্তর। আমি কেবল ফাইলগুলি চেয়েছিলাম এবং কিছুই ছিল না। কোনও কমিটের সংক্ষিপ্তসার নেই, সর্বশেষ প্রতিশ্রুতি থেকে কেবল ফাইলগুলি। ধন্যবাদ!
ভাগ্যটাইক্সি


4

কেবলমাত্র ফাইলগুলি তালিকাভুক্ত করার আরেকটি উপায় হ'ল:
git diff-tree --no-commit-id --name-only -r HEAD^..HEAD
বা আপনি যে কোনও দুটি কমিট আইডি ব্যবহার করতে পারেন


এর সুবিধা logকি?
ড্যান রোজনস্টার্ক

এটি মূলত ফাইল তালিকাভুক্ত করার একটি ভিন্ন উপায়। আমি এটিকে
প্রায়শই

0

আপনি যদি কিছু পূর্ববর্তী প্রতিশ্রুতি ( এবং চেকআউট কার্যকর করার আগে হেডের হ্যাশটি লিখতে ভুলে গিয়েছিলেন) এর পরে সর্বশেষতম এবং সর্বশ্রেষ্ঠ প্রতিশ্রুতি সন্ধানের কথা বলছেন তবে উপরের বেশিরভাগটি আপনাকে কোথায় ফিরে পাবেন না? তুমি শুরু করেছিলে. গিট লগ - [কিছু #] কেবলমাত্র হেডের বর্তমান অবস্থান থেকে লগটি দেখায় যা অগত্যা শেষ প্রতিশ্রুতি (প্রকল্পের অবস্থা) নয়। চেকআউটটি হেডকে সংযোগ বিচ্ছিন্ন করবে এবং আপনি যা যা পরীক্ষা করেছেন তা এটি নির্দেশ করবে।

আসল ক্লোনটি রেফারেন্সিং এন্ট্রি পৌঁছানো পর্যন্ত আপনি পুরো গিট রিফ্লোগ দেখতে পেলেন । বিটিডব্লিউ, আপনি প্রকল্পটি ক্লোন করার সময় এবং আপনি যখন একটি চেকআউট করেছিলেন তার মধ্যে যদি কোনও কমিট করা হয় তবে এটি কাজ করবে না। অন্যথায় আপনি আশা করতে পারেন যে আপনার স্থানীয় মেশিনে আপনার সমস্ত প্রতিশ্রুতি সার্ভারে রয়েছে এবং তারপরে পুরো প্রকল্পটি পুনরায় ক্লোন করুন।

আশাকরি এটা সাহায্য করবে.


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