গিট কমিট খালি পাঠ্য ফাইল খুলবে, কীসের জন্য?


93

সমস্ত গিট টিউটোরিয়ালে আমি পড়েছি তারা বলেছে যে আপনি এটি করতে পারেন:

git init
git add .
git commit

আমি যখন এটি করি তখন আমি একটি বড় টেক্সট ফাইল খুলি। টিউটোরিয়ালগুলির মধ্যে কোনও এটিকে সম্বোধন করছে বলে মনে হয় না, তাই আমি ফাইলটি দিয়ে কী করব বা কিছু হলে এটিতে কী রাখব তা আমি জানি না।

উত্তর:


124

আপনি এই পাঠ্য ফাইলে প্রতিশ্রুতি বার্তা প্রেরণ করতে চাইছেন, তারপরে সংরক্ষণ করুন এবং প্রস্থান করুন।

এই কমান্ডের সাহায্যে গিট ব্যবহার করে এমন ডিফল্ট পাঠ্য সম্পাদক আপনি পরিবর্তন করতে পারেন:

git config --global core.editor "nano"

কমান্ড সাধারণত আপনার পাঠ্য সম্পাদকটি খোলার জন্য আপনাকে ন্যানো পরিবর্তন করতে হবে।


15
--globalআপনার ডিফল্ট পরিবর্তন করতে যোগ করতে হবে না?
Znarkus

4
@Znarkus ভাল পয়েন্ট। আরও তথ্যের জন্য এখানে দেখুন । মূলত, প্রদত্ত উত্তরটি কেবলমাত্র বর্তমান প্রকল্পের সেটিংস পরিবর্তন করতে পারে, যেখানে --globalএটি বর্তমান ব্যবহারকারীর --systemজন্য পরিবর্তন করে এবং সেই কম্পিউটারে প্রত্যেকের জন্য এটি পরিবর্তন করে।
ম্যাট ফেনউইক

24
যদিও এই উত্তরটিতে ভাল তথ্য রয়েছে তবে এটি আসল প্রশ্নের সমাধান করে না।
অ্যাড্রিয়ান শ্মিট

5
আমি দেখতে পাচ্ছি না কেন এর উত্তরগুলি দ্বিগুণ হয়েছে কারণ উত্তরটি সত্যই উত্তর দেয়। এটা না।
জোহান

4
@ জোহান, আপনি ভুল নন, কিন্তু এতে হোঁচট খেয়ে আমি এই উত্তরটি অত্যন্ত সহায়ক বলে খুঁজে পেয়েছি। সুতরাং আমি এটি upvated।
ড্যানেশন

65

যেমন বেন কলিন্স উল্লেখ করেছেন , -m "..."কমিট ইনলাইন টাইপ করার যুক্তি ছাড়াই (যা আপনাকে সংক্ষিপ্ত হতে উত্সাহ দেয় কারণ এটি সাধারণত একটি খারাপ ধারণা) খোলা এই "বড় টেক্সট ফাইল" একটি উইন্ডো যাতে প্রতিশ্রুতি বার্তা টাইপ করতে হয় ।

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

EDITORশেল ভেরিয়েবল পরিবর্তন করার পরিবর্তে , আপনি নিজের ~/.gitconfigফাইলটিতে অতিরিক্ত লাইন যুক্ত করে ব্যবহৃত সম্পাদকও পরিবর্তন করতে পারেন :

[core]
    editor = emacs
    excludesfile = /Users/will/.gitignore

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


36

যে পাঠ্য ফাইলটি খোলা হচ্ছে তা হ'ল বর্তমান অঙ্গীকার ক্রিয়াকলাপের সংক্ষিপ্তসার। গিট কমিট আপনাকে এই ফাইলে ফেলে দেয় যাতে আপনি ফাইলের শীর্ষে কমিট বার্তা যুক্ত করতে পারেন। একবার আপনি নিজের বার্তা যুক্ত করলে এই ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন।

এই কমান্ডটিতে একটি "-m msg" সুইচ রয়েছে যা আপনাকে কমান্ড লাইনে প্রতিশ্রুতি বার্তা যুক্ত করতে দেয়।


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

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

15

আপনি যদি ম্যাক ওএস এক্সে এবং বিবিএডিট ব্যবহার করে থাকেন তবে কমিটমেন্ট বার্তাগুলির জন্য আপনি এটি পছন্দসই সম্পাদক হিসাবে সেট করতে পারেন:

git config --global core.editor "bbedit -w"

সম্পাদনা শেষ হয়ে গেলে ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন এবং গিট মন্তব্যগুলির জন্য এটি ব্যবহার করবে।


15

ধরে নিই যে আপনার সম্পাদকটি vi / vim এ ডিফল্ট হয়েছে, আপনি কমিট বার্তা সম্পাদকটি টাইপ করে প্রস্থান করতে পারেন:

:x

যা কমিট মেসেজ ফাইলটি সংরক্ষণ এবং প্রস্থান করবে। তারপরে আপনি স্বাভাবিক গিট কমান্ড বিভাগে ফিরে যাবেন।

আরও vi কমান্ড:
http://www.lagmonster.org/docs/vi.html


9
আপনি যদি আমার মতো হন তবে আপনি সন্নিবেশ / প্রতিস্থাপন মোডে ছিলেন (অর্থাত্ প্রতিশ্রুতি বার্তাটি টাইপ করছেন)। যদি তা হয়, সংরক্ষণ করতে এবং প্রস্থান করার জন্য escটাইপ :xকরার আগে আপনাকে কমান্ড মোডে উঠতে হবে ।
মার্টিন কার্নি

4
অবশ্যই ধরে নেওয়া যায় যে তার সম্পাদক vi / vim এর উপর ডিফল্ট হয়েছে। এটি সবার জন্য সত্য হবে না। অবশ্যই এই
ইম্যাক্স

এটি আমাকে অনেক ঝামেলা বাঁচিয়েছিল। আপনাকে অনেক অনেক ধন্যবাদ
ড্যানেশন

12

যেহেতু সকলেই এটি বলেছেন যেখানে আপনি নিজের প্রতিশ্রুতিবদ্ধ মন্তব্যটি যুক্ত করেছেন - তবে কারওর জন্য এটি এখনও বিভ্রান্তিকর হতে পারে যদি আপনি নিজের সম্পাদকীয় সেটিংস কনফিগার না করে থাকেন এবং ষষ্ঠটি কী সম্পর্কে আপনি অবগত না হন : তবে আপনি শক করতে পারেন , কারণ আপনি ভাবেন যে আপনি এখনও জিআইটি-ব্যাশে রয়েছেন

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


8
আমি জানি vi এর সমাপ্তি সর্বদা আমাকে চমকে দেয় :)
উইল রবার্টসন

4
বিষয়গুলি এখন আরও অনেক বেশি অর্থবোধ করে। +1
ম্যাট এলেন

11

-mকমিট করার অপশন আপনি যদি একটি প্রবেশ কমান্ড লাইন বার্তা কমিট করতে দেয়:

git commit -m "my first commit"

7

আপনি যখন নতুন প্রতিশ্রুতি তৈরি করেন, গিটটি একটি পাঠ্য সম্পাদককে জ্বালিয়ে দেয় এবং এতে কিছু স্টাফ লিখে দেয়।

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

আপনি এটি শেষ করার পরে, সংরক্ষণ করুন এবং পাঠ্য সম্পাদকটি প্রস্থান করুন। গিটটি আপনি যা লিখেছেন তা প্রতিশ্রুতি বার্তা হিসাবে ব্যবহার করবে।

প্রতিশ্রুতিবদ্ধ বার্তার একটি নির্দিষ্ট কাঠামো রয়েছে যা নীচে বর্ণিত:

প্রতিশ্রুতিবদ্ধ বার্তার প্রথম লাইন বার্তা শিরোনাম (বা শিরোনাম) হিসাবে ব্যবহৃত হয়। কমিটের শিরোনামটির প্রিফার্ড দৈর্ঘ্য 40 টিরও কম অক্ষরের চেয়ে কম, কারণ এটি এমন একটি অক্ষরের সংখ্যা যা গিথুব একটি প্রদত্ত ভান্ডারটি কমিট করার আগে কমিট ট্যাবে প্রদর্শিত হয় যা কিছু লোক বিরক্তিকর বলে মনে হয়।

শিরোনামটি রচনা করার সময়, প্রথম শব্দের জন্য মূলধন, বর্তমান কাল ক্রিয়া ব্যবহার করা সাধারণ অনুশীলন, যদিও প্রয়োজনীয় নয়।

একটি নতুন লাইন বার্তার শিরোনাম এবং শৃঙ্গটি বর্ণিত করে।

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

একটি সংক্ষিপ্ত এবং মিষ্টি উদাহরণ এখানে। একটি নেতৃস্থানীয় #একটি মন্তব্য বোঝায়।

Gitignore index.pyc

Ignore gunicorn generated binary file
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch dev
# Your branch is ahead of 'origin/dev' by 10 commits.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   .gitignore
#

এখানে একজন মিঃ টরভাল্ডস একটি ভাল প্রতিশ্রুতিবদ্ধ তা সম্পর্কে আলোচনা করেন।

এবং এখানে টপোপ একইভাবে করে।

অন্যান্য বেশ কয়েকটি উত্তরে যেমন বলা হয়েছে, ডিফল্ট সম্পাদক পরিবর্তন করা হ'ল কমান্ড লাইনের ওয়ান-লাইনার।

আমার পছন্দ জন্য:

git config --global core.editor "vim"

4
এটি প্রশ্নের উত্তর গ্রহণযোগ্য উত্তর হওয়া উচিত।
এমপিএফাইলস 13

6

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


4

git commitকমান্ড সম্পাদক উল্লেখিত খোলা হবে EDITORএনভায়রনমেন্ট ভেরিয়েবল তাই আপনি কি একটি মন্তব্য কমিট লিখতে পারেন। লিনাক্স বা বিএসডি সিস্টেমে এটি ডিফল্ট হিসাবে vi হওয়া উচিত, যদিও কোনও সম্পাদকের কাজ করা উচিত।

আপনার মন্তব্য লিখুন এবং ফাইলটি সংরক্ষণ করুন।


2

আমি বিভ্রান্ত হয়ে পড়েছিলাম কারণ আমি ভিআইএম-তে: ডাব্লু এর পরে কোনও ফাইলের নাম লিখতে চেষ্টা করেছিলাম। এটি কমিটকে ট্রিগার করে না। পরিবর্তে আমি একটি বার্তা পেতে থাকি "খালি কমিট বার্তার কারণে প্রতিশ্রুতি বাতিল করা" ort : ডাব্লু এর পরে কোনও ফাইলের নাম রাখবেন না। : w ফাইলটিকে ডিফল্টরূপে .git / COMMIT_EDITMSG এ সংরক্ষণ করে। তারপরে: q প্রতিশ্রুতি সম্পন্ন করতে প্রস্থান করতে। গিট লগ দিয়ে আপনি ফলাফলগুলি দেখতে পাচ্ছেন।


বা আপনি কেবল ব্যবহার করতে পারেন: এক্স সংরক্ষণ এবং প্রস্থান করতে।
টিজে এলিস

2

এখন আমি আমার সম্পাদককে ইমাসে পরিবর্তন করেছি, সবকিছু ঠিকঠাক কাজ করে।

তবে আমি এটি সেট করার আগে, "গিট কমিট-এ" জেনডিট খোলার সাথে সাথে "খালি কমিট বার্তার কারণে বিলোপ করা প্রতিশ্রুতি" দিয়ে অবিলম্বে শেষ হয়েছিল। জিডিট থেকে ফাইল সংরক্ষণের কোনও প্রভাব ছিল না। "গিট কনফিগারেশন - গ্লোবাল কোর.এডিটর" জিডিট "" দিয়ে স্পষ্টভাবে সম্পাদককে সেট করার একই ফলাফল ছিল।

ইমাসগুলিতে কোনও ভুল নেই, তবে কৌতূহলের বাইরে এই কাজটি জিডিট দিয়ে কেন হয় না এবং এটি কাজ করার কোনও উপায় আছে কি?

ধন্যবাদ


যদি gedit ইতিমধ্যে চলমান থাকে, "gedit file.txt" করাটি বিদ্যমান উইন্ডোটিতে ফাইলটি খুলবে এবং তাত্ক্ষণিকভাবে ফিরে আসবে ... আপনার এটিকে একটি প্রকৃত প্রশ্ন হিসাবে পোস্ট করা উচিত, বিশেষত গিট দিয়ে জিডিট ব্যবহার সম্পর্কে।
আরকনিদ

6
এটিও ছুটে গেল আপনি 'স্ট্যান্ডেলোন' মোডে git config --global core.editor "gedit -s"
চলার জন্য জিডিট

2

আপনারা ওএস একাদশটি ব্যবহার করেন তাদের পক্ষে এই কমান্ডটি ভালভাবে কাজ করতে পাওয়া গেছে:
git config --global core.editor "open -t -W"

যা গিটকে ডিফল্ট পাঠ্য সম্পাদকটি খুলতে বাধ্য করবে (আমার ক্ষেত্রে টেক্সটাইটাইট) এবং তারপরে আপনি অ্যাপ্লিকেশনটি থেকে বেরিয়ে আসার জন্য অপেক্ষা করবেন। মনে রাখবেন যে প্রতিশ্রুতি দেওয়ার আগে আপনাকে "সংরক্ষণ" এবং তারপরে "প্রস্থান" পাঠ্যপুস্তকটি দরকার। এই পৃষ্ঠায় বিস্তারিত হিসাবে আপনি প্রায় খেলতে পারেন এমন আরও কয়েকটি কমান্ড রয়েছে:

অ্যাপল বিকাশকারী গ্রন্থাগার - ওপেন কমান্ড

আপনি git config --global core.editor "open -e -W"যদি ডিফল্ট সম্পাদকটি নির্বিশেষে গিটটি সর্বদা টেক্সটাইটটি খুলতে চান তবে আপনিও চেষ্টা করতে পারেন।


1

হ্যাঁ, নিশ্চিত করুন যে আপনার একটি বুদ্ধিমান সম্পাদক সেট রয়েছে। আপনি যে ডিফল্ট সম্পাদক হবেন তা নিশ্চিত নন তবে আমার মতো যদি এটি ন্যানো হয় (আপনি প্রতিশ্রুতি টাইপ করার পরে শীর্ষের কাছাকাছি কোথাও বলবেন) আপনার কেবল একটি মন্তব্য লিখতে হবে এবং তারপরে শেষ করতে Ctrl-x টিপুন hit তারপরে y চাপুন এবং তারপরে কমিটটি নিশ্চিত করতে প্রবেশ করুন।

এছাড়াও, আপনি যদি ফাইলগুলির একটি সহজ তালিকা দেখতে চান তবে আপনি আগে থেকে চেষ্টা করার চেয়ে একটি বিশাল বৈচিত্রের তালিকা তৈরির পরিবর্তে প্রতিশ্রুতিবদ্ধ হবেন

git diff --name-only

1

পুনর্বিবেচনা নিয়ন্ত্রণ করার সময়, আপনি সর্বদা ব্যাখ্যা করতে হবে যে আপনি কী পরিবর্তন করেছেন। সাধারণত প্রথম বার আপনার মতামত যেমন "প্রাথমিক প্রতিশ্রুতিবদ্ধ" have

তবে দীর্ঘমেয়াদে আপনি প্রতিটি প্রতিশ্রুতিবদ্ধতার জন্য একটি ভাল মন্তব্য করতে চান। আপনি ফর্মটি কিছু চাইবেন:

এক্স পরীক্ষামূলক বৈশিষ্ট্য এক্স।

এক্স জেড শর্তে Y এর বৈশিষ্ট্যটির পারফরম্যান্স বাড়িয়ে তুলবে you আপনার এক্সের দরকার হলে এটি -x বা - ফিচার-একস সুইচ দিয়ে সক্রিয় করুন। এই ঠিকানা বৈশিষ্ট্য অনুরোধ # 1138।


1

টার্মিনালেও নতুন হওয়ার কারণে, "এস্কেপ এবং তারপরে জেডজেড" আমার পক্ষে কাজ করেছিল, আমি কয়েক মাস ধরে এই সমস্যাটি নিয়ে আসছি এবং এর আশেপাশের কোনও উপায়ও খুঁজে পাইনি।

আপনার সহজ পরামর্শের জন্য থিওফকে ধন্যবাদ!


0

নিম্নলিখিতটি সম্ভবত সমস্ত পরিবর্তন সম্পাদনের সহজতম উপায়:

git commit -a -m "Type your commit message here..."

প্রতিশ্রুতিবদ্ধ হওয়ার আরও অনেক বিস্তৃত উপায় রয়েছে তবে এটি আপনাকে শুরু করা উচিত।

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