কোনও প্রতিশ্রুতি বার্তা না দিয়ে গিট কমিট


108

প্রতিশ্রুতিবদ্ধ বার্তা নির্দিষ্ট না করে আমি কীভাবে পরিবর্তন করতে পারি? এটি ডিফল্টরূপে কেন প্রয়োজন?


6
অবশেষে, git commit -a --allow-empty-message -m ''এমনকি কোনও সম্পাদক খুলবেন না। দেখুন নিচের আমার উত্তর
VonC

2
Windows এ এই কমান্ড git commit -a --allow-empty-message -m ''তোলে সঙ্গে কমিট বার্তা কমিট " ''", তাই এটি পরিবর্তে এই কমান্ড ব্যবহার করাই ভালো: git commit -a --allow-empty-message -m ""
টাভ

উত্তর:


137

গিট সাধারণত একটি খালি খালি বার্তা প্রয়োজন কারণ একটি অর্থবোধক প্রতিশ্রুতি বার্তা প্রদান ভাল উন্নয়ন অনুশীলন এবং ভাল ভাণ্ডার স্টুয়ার্ডশিপ অংশ। প্রতিশ্রুতি বার্তার প্রথম লাইনটি গিটের মধ্যে পুরো জায়গা জুড়ে ব্যবহৃত হয়; আরও জন্য, "গিট কমিট বার্তা সম্পর্কে একটি নোট" পড়ুন

আপনি যদি cdআপনার প্রকল্প ডিরেক্টরিতে টার্মিনাল.এপ খুলেন এবং git commit -am ''আপনি দেখতে পাবেন যে এটি ব্যর্থ হয়েছে কারণ খালি কমিট বার্তা অনুমোদিত নয়। গিটের নতুন সংস্করণগুলিতে
--allow-empty-messageএক্সকোডের সর্বশেষ সংস্করণ সহ গিট সংস্করণ অন্তর্ভুক্ত করে কমান্ডলাইন আর্গুমেন্ট রয়েছে। এটি আপনাকে একটি খালি বার্তা দিয়ে কমিট করার জন্য এই আদেশটি ব্যবহার করতে দেবে:

git commit -a --allow-empty-message -m ''

--allow-empty-messageপতাকার আগে , আপনাকে commit-treeনদীর গভীরতানির্ণয় কমান্ডটি ব্যবহার করতে হয়েছিল । আপনি এই কমান্ড ব্যবহার করে একটি উদাহরণ দেখতে পারেন "কাঁচা গীত" অধ্যায় এর গীত বই


1
-এর একটি নবীনতর সংস্করণ gitআছে --allow-empty-messageকমান্ড যুক্তি। ডকুমেন্টেশন এখানে দেখুন । এতে উল্লেখ করা হয়েছে যে আপনি নদীর গভীরতানির্ণয় কমান্ড ব্যবহার করে একই জিনিস সম্পাদন করতে সক্ষম হবেন git-commit-tree
জেরেমি ডব্লিউ শেরম্যান

18
আমি মনে করি "অর্থপূর্ণ প্রতিশ্রুতি বার্তা সরবরাহ করা ভাল উন্নয়ন অনুশীলনের অংশ " বাক্যটি কেবল ভুল - কেউ বলতে পারেন যে অর্থবোধক প্রতিশ্রুতি বার্তা প্রদান করা ভাল বিকাশের অনুশীলনের অংশ হিসাবে বিবেচিত হয় , যেহেতু বিবৃতিটি যেভাবেই বিভাজক - আমি একজনের পক্ষে বিশ্বাস করুন যে কম তথ্য কখনও কখনও কম বিভ্রান্তির দিকে নিয়ে যায়, বিশেষত যেহেতু গিট স্পষ্টতই সংগ্রহস্থলের আসল পরিবর্তনগুলি সংরক্ষণ করে এবং একটি git diffআগ্রহী পক্ষকে মানুষের লিখিত বর্ণনার উপর নির্ভর না করে কোনও প্রতিশ্রুতিবদ্ধ কী রয়েছে তা দেখাবে । যন্ত্রগুলি যেখানে সম্ভব সেখানে শ্রম থেকে আমাদের বাঁচানো উচিত।
amn

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

7
গিটটি কেবল কোড বিকাশের জন্য ব্যবহৃত হয় না। আমি যখন একটি গিটহাব উইকি পৃষ্ঠা বা একটি ওভারলিফ ল্যাটেক্স ডকুমেন্ট আপডেট করছি তখন সাধারণত বলার মতো কিছুই থাকে না কারণ আমি ডকুমেন্টেশন আপডেট করছি পরিবর্তন সম্পর্কে শব্দার্থগত অর্থবোধক সব কিছুতেই ভিন্নতা রয়েছে। আমি নিজেকে পরিবর্তনের পাঠ্যটি নিজেকে প্রতিশ্রুতিবদ্ধ বার্তা হিসাবে ব্যবহার করে দেখতে পেয়েছি: সম্পূর্ণ নিরর্থক!
জিম পিভারস্কি

1
@ এমএনএন, কখনও কখনও git diffপ্রতিশ্রুতিবদ্ধ ব্যক্তির বিশ্বাস হলেও এমনকি এর ফলাফল স্ব-ব্যাখ্যামূলক হয় না।
কাপলিনেটর

26

এবং যদি আপনি এর জন্য কোনও নাম যুক্ত করেন তবে এটি আরও ভাল?

git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'

এখন আপনি কোনও এনসিএমমিট করেন, কোনও মন্তব্য না করার কারণে এনসি এবং সমস্ত কিছু করা উচিত।


19

কোনও গুরুত্বপূর্ণ কোড আপডেটে কাজ করার সময়, আপনার যদি সত্যিকার অর্থে একটি মধ্যবর্তী সেফপয়েন্টের প্রয়োজন হয় তবে আপনি কেবল এটি করতে পারেন:

git commit -am'.'

বা সংক্ষিপ্ত:

git commit -am.

এবং এটি কি করে?
ফিশিনিয়ার

'বার্তাটি দিয়ে একটি অঙ্গীকার যুক্ত করুন।'
অবসাদগ্রস্ত

আমি এই পদ্ধতিটি ব্যবহার করি যখন আমি আক্ষরিক অর্থে আমার কোন প্রতিশ্রুতি রেখেছিলাম তার কোন স্মরণ নেই এবং এগুলি সম্পর্কে খুব অলস আমি diff
TheTechRobo36414519

16

নোট: শুরু git1.8.3.2 (জুলাই 2013), নিম্নলিখিত কমান্ড ( উপরে উল্লিখিত দ্বারা জেরেমি ওয়াট শের্মান ) আর একজন সম্পাদক খুলতে না:

git commit --allow-empty-message -m ''

প্রতিশ্রুতিবদ্ধ 25206778aac776fc6cc4887653fdae476c7a9b5a দেখুন :

যদি -mগিট কমিটের বিকল্পের সাথে একটি খালি বার্তা নির্দিষ্ট করা থাকে তবে সম্পাদকটি শুরু হয়।
এটি অপ্রত্যাশিত এবং অপ্রয়োজনীয়।
ব্যবহারকারী কোনও নির্দিষ্ট করেছে কিনা তা যাচাই করার জন্য বার্তাটির স্ট্রিংয়ের দৈর্ঘ্যটি ব্যবহার না করে বিকল্পটি -mদেওয়া হয়েছিল কিনা তা সরাসরি মনে রাখুন ।


গিট ২.৯ (জুন ২০১)) খালি বার্তার আচরণের উন্নতি করে:

দেখুন কমিট 178e814 (06 এপ্রিল 2016) দ্বারা আদম Dinwoodie ( me-and)
দেখুন কমিট 27014cb (07 এপ্রিল 2016) দ্বারা জেফ কিং ( peff)
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 0709261 , 22 এপ্রিল 2016)

commit: প্রদত্ত একটি খালি বার্তা উপেক্ষা করবেন না -m ''

  • " git commit --amend -m '' --allow-empty-message", যদিও এটি অদ্ভুত বলে মনে হচ্ছে, কোনও বার্তা না থাকার প্রতিশ্রুতি সংশোধন করার একটি বৈধ অনুরোধ। কমান্ড লাইনে
    উপস্থিতিগুলির ভুল ব্যবহারের কারণে -mআমরা লগ ম্যাসেজকে মূল প্রতিশ্রুতি থেকে দূরে রেখেছিলাম ।
  • " git commit -m "$msg" -F file" $msgখালি স্ট্রিং কিনা তা প্রত্যাখ্যান করা উচিত , তবে একই বাগের কারণে $msgখালি থাকার সময় প্রত্যাখ্যান করা হয়নি ।
  • খালি git -c template=file -m "$msg"থাকা অবস্থায়ও " " টেমপ্লেটটিকে উপেক্ষা করা উচিত $msg, তবে এটি টেমপ্লেট ফাইল থেকে সামগ্রীগুলি ব্যবহার করে নি।

3

এটি সম্পাদন করার জন্য আপনার গিটের দরকার নেই। ব্যাশ ফাংশনটির ক্রিয়েটিভ ব্যবহার কৌশলটি ঠিকঠাক করবে। আপনি যদি বার্তাগুলি সম্পর্কে চিন্তা না করেন তবে একটি ডিফল্ট সেট করুন এবং এটি ভুলে যান।

function gitcom() {
  git commit -m "my default commit message"
}

আপনি যদি সত্যিই দুঃসাহসী বোধ করেন তবে আপনি একটি কমান্ড যুক্ত করতে, প্রতিশ্রুতিবদ্ধ করতে এবং চাপ দিতে পারেন

function gitzap() {
  git add . && git commit -m "whatevs" && git push $1 $2
}

যা আপনি তারপর হিসাবে চালানো হবে

gitzap origin master

আপনি আরও গভীর হয়ে উঠতে এবং পার্স_গিট_ব্রাঞ্চ ব্যবহার করতে পারেন সেখানে নিজেকে কিছু কীস্ট্রোক বাঁচাতে, বা "উত্স" এবং "মাস্টার" এর সাধারণ ডিফল্ট সেট করতে পারেন।


1
আপনি কীভাবে এই ব্যাশ ফাংশনটি সেট আপ করবেন সে সম্পর্কে আরও কিছু বিশদ সরবরাহ করতে পারেন?
অ্যাডাম

1
ধরে নিই যে আপনি ওএসএক্স বা লিনাক্সে রয়েছেন, আপনি এই ফাংশনগুলি অনুলিপি করতে পারেন এবং আপনার। প্রোফাইলে রাখতে পারেন (এটি যদি না তৈরি হয় তবে আপনার হোম ফোল্ডারে থাকা উচিত)। একটি নতুন কনসোল উইন্ডো খুলুন এবং সেই আদেশগুলি আপনার কাছে উপলব্ধ থাকবে। এই ফাইলগুলিতে করা যেকোনো পরিবর্তনগুলির জন্য আপনাকে বাশ সেশনটি রিফ্রেশ করতে হবে যাতে আপনি সেই ফাইলটিতে নিম্নলিখিত উপকরণগুলি যুক্ত করে জিনিসগুলিকে গতিময় করতে পারেন: ওরফে ea = "subl ~ /। প্রোফাইল" # subl আমার পাঠ্য সম্পাদক, আপনার নিজের বিকল্প হিসাবে ওরফে ইর = "উত্স ~ / .প্রফাইলে" # এটি পুনরায় সেট হবে এখন আপনি যখন শর্টকাট যুক্ত করতে চান কেবল "ea" টাইপ করুন (উপন্যাস সম্পাদনা করুন) এবং এর রিফ্রেশ করতে
স্টিভেন গার্সিয়া

2
আপনি স্ক্রিপ্ট নামক যদি git-comএবং git-zap: (এক্সটেনশন ছাড়া) এবং স্থাপন তাদের কোথাও Git তাদের (আপনার PATH- এ অর্থাত কোথাও) জানতে পারেন, নিয়মিত Git কমান্ড মত Git একইরূপে তাদের এবং আপনি তাদের ভালো ডাকা যাবে git com,git zap origin master
Manuzor

1
বাশে এটি হয় function gitcom {না gitcom() {টিএমকে, ঠিক আছে?

2

গিটের একটি মন্তব্য করার জন্য একটি প্রতিশ্রুতি প্রয়োজন, অন্যথায় এটি প্রতিশ্রুতি গ্রহণ করবে না।

আপনি গিটের সাথে একটি ডিফল্ট টেম্পলেটটি আপনার ডিফল্ট প্রতিশ্রুতি বার্তা হিসাবে কনফিগার করতে পারেন বা গিট-এ-ফাঁকা-বার্তা পতাকাটি দেখতে পারেন। আমি মনে করি (100% নিশ্চিত নয়) আপনি খালি কমিট বার্তাগুলি গ্রহণ করার জন্য গিটকে পুনরায় কনফিগার করতে পারেন (যা এত ভাল ধারণা নয়)। সাধারণত প্রতিটি প্রতিশ্রুতিবদ্ধ কিছুটা কাজ করা উচিত যা আপনার বার্তা দ্বারা বর্ণিত described


1
নিশ্চিত নয় কেন এই উত্তরটি নিচে ভোট দেওয়া হয়েছিল। আমি সম্মত হই যে গিটকে খালি প্রতিশ্রুতিবদ্ধ বার্তাগুলি গ্রহণ করতে বাধ্য করা, বা 'সেভ' এর মতো একটি বার্তা ব্যবহার করা একটি খারাপ ধারণা is এর সাথে লড়াই করা বন্ধ করুন এবং জঘন্য সরঞ্জামটি শিখুন।
জেজেন থমাস

1

আমি সবচেয়ে সহজ সমাধান পেয়েছি:

git commit -am'save'

এটুকুই, আপনি গিট কমিট মেসেজের স্টাফ নিয়ে কাজ করবেন।

এমনকি আপনি এটি আরও সহজ করার জন্য ব্যাশ বা অন্যান্য স্টাফের প্রশংসা সংরক্ষণ করতে পারেন।

আমাদের দলের সদস্যরা সবসময় এই বার্তাগুলি লিখেন তবে প্রায় কেউই এই বার্তাটি দেখতে পাবেন না।

কমিটমেন্ট বার্তা হ'ল কমপক্ষে আমাদের দলে টাইম-কিল স্টাফ, তাই আমরা এটিকে উপেক্ষা করি।


1

আমার ব্যক্তিগত প্রকল্পে আমার নীচের কনফিগারেশন রয়েছে:

git config alias.auto 'commit -a -m "changes made from [device name]"'

এইভাবে, যখন আমি তাড়াহুড়া করি তখন করি

git auto
git push

এবং কমপক্ষে আমি জানি ডিভাইসটি কোন ডিভাইস থেকে তৈরি হয়েছিল।


-5

প্রতিশ্রুতিবদ্ধ বার্তা একটি সেরা অনুশীলন যা সর্বদা অনুসরণ করা উচিত। আপনি যদি একমাত্র বিকাশকারী না হন এবং তা শীঘ্রই যে কোনও সময় পরিবর্তন হবে না।

git commit -a -m 'asdfasdfadsfsdf'

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