গিট: মন্তব্য হিসাবে কমিট ম্যাসেজের সূচী আলাদা করুন f


109

যখন git commitখোলা বার্তা সম্পাদক শো সংক্ষিপ্ত অবস্থা, ভালো কিছু হল:

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is ahead of 'origin/master' by 26 commits.
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   Showcase/src/com/gigantt/BorderArea.mxml
#   modified:   Showcase/src/com/gigantt/Client.mxml
#   modified:   Showcase/src/com/gigantt/GraphItem.mxml
#

প্রতিশ্রুতিবদ্ধ হওয়ার ভিন্নতাটি দেখানোর জন্য আমি কীভাবে গিটকে টুইট করতে পারি? আমি সচেতন যে এটি একটি দীর্ঘ পার্থক্য হতে পারে, কিন্তু এখনও .. তাই দরকারী।


আপনি কী করার চেষ্টা করছেন যে প্রতিশ্রুতি বার্তায় তালিকাভুক্ত পরিবর্তনগুলি আপনার প্রয়োজন? কোনও নির্দিষ্ট সরঞ্জামের সাথে আপনার কেবল একটি ভুল বোঝাবুঝি হতে পারে এবং আমরা আপনাকে প্রকৃত সমস্যাটি সমাধান করতে সহায়তা করতে পারি।
মার্ক রুশাকফ

1
এটি কি আপনাকে এমন কিছু তথ্য সরবরাহ করে যা আপনি 'গিট লগ-পি' দিয়ে পান না?
জেড স্নাইডার

12
@ মার্ক: ওপি বিভিন্ন মন্তব্য করতে চাইছে। এটি ডিফল্ট মন্তব্য-আউট ইঙ্গিতটির আরও ভার্বোজ সংস্করণ। @ জেদ: কমিট প্রতিবেদনের টেমপ্লেটে ওপি এই তথ্য চায়। হ্যাঁ git diff --cachedএটি তৈরি করে, তবে আপনি যদি প্রতিবার এটি চান তবে আলাদা কমান্ড কেন চালাবেন?
ক্যাসাবেল

1
আপনি যদি ভাবছেন তবে github.com/tpope/vim-fugitive/issues/149 পলাতক জন্য এটি অনুসরণ করছে। আপনি যদি না হন তবে আপনার হওয়া উচিত।
lkraav

উত্তর:


149

--verbose(অথবা -vজন্য) পতাকা git commitকি প্রতিশ্রুতিবদ্ধ হতে হবে পরিবর্তন প্রদর্শন করা হবে:

git commit --verbose


3
দেখে মনে হচ্ছে যে ডিফ ডিফল্টভাবে মন্তব্য করা হয়নি, কোনওভাবেই এটি ডিফল্টরূপে কোনও মন্তব্য করতে পারে?
ইদান কে

25
বিভিন্ন বার্তাগুলিকে মন্তব্য করার দরকার নেই, ইদান; গিট তাদের মন্তব্য উপেক্ষা করার মতো এড়াতে জানে।
ব্র্যান্ডন রোডস 11

@ ব্র্যান্ডনরোডস কিভাবে গিট বিট টিআইফিকে অগ্রাহ্য করবেন? আমি পৃথক ফর্ম্যাটে কয়েকটি সংযোজন রেখা উত্পন্ন করার জন্য একটি স্ক্রিপ্ট পেয়েছি, তবে এটি প্রথম লাইন থেকে কেটে গেছে
ডেনিস সি

2
@ ইদনকে, প্রতিশ্রুতিবদ্ধ বার্তা টেমপ্লেটে মন্তব্য করা হচ্ছে না এমন বিভিন্ন লাইনের একটি উপকারিতা হ'ল ভিম কোড কালারিং যুক্ত হওয়া পৃথক সামগ্রীগুলিতে কাজ করে (যদি আপনি ভিআইএম জন্য গিট ফাইল টাইপ সংযোজন ইনস্টল করেন)। এই বিচিত্র লাইনগুলিকে যদি মন্তব্য করা হয় তবে এই রঙটি কার্যকর হবে না।
ক্রিস্টোফার

1
আমার পূর্ববর্তী মন্তব্য উপেক্ষা করুন; "অপরাধী উপরের লাইনে স্পর্শ করবেন না" লাইন দিয়ে জবাবদিহি করছিল এডিটর কনফ্লিগ প্লাগইন।
ড্যানিয়েল লিউজি

31

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

$ git commit --verbose

আমার সম্পাদকটিতে:

Feeling a bit pessimistic now.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   README
#
diff --git a/README b/README
index af5626b..c62237e 100644
--- a/README
+++ b/README
@@ -1 +1 @@
-Hello, world!
+Goodbye, world!

(ভিন্ন #লাইন পূর্ববর্তী অভাব নোট করুন )

এবং তারপরে প্রকৃত প্রতিশ্রুতি বার্তা:

$ git log -n 1
commit ad21a2655ef6d8173c2df08dc9893055b26bc068
Author: Tom Jakubowski <tom@crystae.net>
Date:   Thu Oct 27 19:12:54 2011 -0700

    Feeling a bit pessimistic now.

স্পষ্টতই, git showএখনও তফাত দেখাবে, কিন্তু এটি কারণ এটি সর্বদা কমিটগুলির জন্য করে। :)


2
গিটের নতুন সংস্করণগুলিতে (আমার কাছে ২.৩ রয়েছে) নিম্নলিখিত লাইনের সাথে পৃথকীকরণ করা হয়েছে: # ------------------------ >8 ------------------------- আমার ধারণা যে গিটটি এর পরে উপস্থিত সমস্ত কিছু স্বয়ংক্রিয়ভাবে মুছে ফেলে।
জান ওয়ার্চো

কমপক্ষে 2.4.1 হিসাবে, আমি দেখতে পাচ্ছি: # ------------------------> 8 ------------ ------------ # উপরের লাইনটি স্পর্শ করবেন না। # নীচের সমস্ত কিছুই সরানো হবে। সুতরাং আপনি যা ভাবছিলেন তা নিশ্চিত করে।
অ্যান্টনি পানোজো

@ অ্যান্থনিপানোজো এটি 2.5.3 এ ভাঙ্গা মনে হচ্ছে। "উপরের রেখাকে স্পর্শ করবেন না" সত্ত্বেও, সম্পূর্ণ ভিন্নতা যাইহোক, প্রতিশ্রুতি বার্তায় শেষ হয়।
ড্যানিয়েল লিউজি


3
কমান্ড লাইন থেকে এটি সেট করতে:git config --global commit.verbose true
টেলর এডমিস্টন

10

এই আচরণটি সর্বদা উপস্থিত থাকে তা নিশ্চিত করার সহজ উপায়টি আপনার git configফাইলে এই বিভাগটি যুক্ত করা :

[commit]
  verbose = true

প্রকৃতপক্ষে ডিফ মোডে প্রদর্শন করতে আপনাকে আপনার সম্পাদককে কনফিগার করতে হবে (সিনট্যাক্স হাইলাইট করার জন্য)। আমি উইন্ডোজ নোটপ্যাড প্রতিস্থাপন হিসাবে নোটপ্যাড 2 ব্যবহার করি এবং -s diffরঙ স্কিমটি যথাযথভাবে সেট করে (মুছে ফেলা রেখাগুলির জন্য লাল) ইত্যাদি:

[core]
  editor = C:/Windows/system32/notepad.exe -s diff

9

আমি মন্তব্যগুলি আলাদা করার জন্য নীচের লাইনগুলি .git / হুক্স / রেডি-কমিট-পিক্সে রেখেছি :

#!/bin/bash

if [ "$2" == "" ] ; then
    git diff --staged -p --stat 2> /dev/null | awk '{ printf "#"; print}' >> "$1"  2>/dev/null
fi

এইভাবে আপনি কেবল ভিন্নতার জন্য মন্তব্য করতে পারবেন না, আরও তথ্য যুক্ত করুন (যেমন স্ট্যাট বিকল্পটি করে)।

সম্পাদনা: এছাড়াও গিট কমিট --verbose এই প্রতিশ্রুতি বার্তাটির পার্থক্য অন্তর্ভুক্ত করে না এইভাবে # টি ছাড়াই করবে।


4
মন্তব্য করার পরিবর্তে আপনি # ------------------------ >8 ------------------------আরও ব্যবহার করতে পারেন git-scm.com/docs/git-commit#git-commit-scissors
এবি

8

আপনি যখন প্রতিশ্রুতিবদ্ধ তখন আপনি সর্বদা পৃথকটি দেখতে চান, আপনি নিজের ~/.gitconfigফাইলটিতে নিম্নলিখিতগুলি যুক্ত করতে পারেন :

[alias]
commit = commit -v

আপনি পারেন, যদিও - আপনি গিটের কোন সংস্করণে আছেন? এটি আমার জন্য w / সংস্করণ 2.0.0
মরিচা

2
আপনার উত্তর আশাব্যঞ্জক দেখায় তবে আমার পক্ষেও কার্যকর হয় না। আমি চেষ্টা করেছি git config --global alias.commit 'commit -v'এবং উপনামটি আপনার পরামর্শ মতো যুক্ত করা হয়েছে - কেবল স্বয়ংক্রিয়ভাবে। আমি আর একটি নাম তৈরি করেছিলাম cvযা প্রত্যাশার মতো কাজ করে। আমার গিট সংস্করণটি উবুন্টু 15.10 এ প্যাকেজ হিসাবে 2.5.0।
ড্যানিয়েল বোহ্মার

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