গিট কেন আমাকে পোস্ট-পুলের মার্জ কমিট ম্যাসেজের জন্য অনুরোধ করছে?


142

সম্প্রতি, কোনও অনুসরণ করে git pull, গিটটি আমার পাঠ্য সম্পাদককে সজ্জিত করা শুরু করেছে, এবং একীভূত প্রতিশ্রুতি বার্তা চাইছে। একটি প্রতিশ্রুতিবদ্ধ বার্তা ইতিমধ্যে প্রাক ভরাট, এবং আমি টান সম্পূর্ণ করতে উইন্ডোটি সংরক্ষণ এবং বন্ধ করতে হবে।

অতীতে, এটি একটি স্ট্যান্ডার্ড কমিট বার্তা সহ (নিখুঁতভাবে) নিঃশব্দে একত্রীকরণ করবে Merge branch 'dev' of remote.com:/repo into dev

আমি সম্প্রতি গিটটি 1.7.11.3 সংস্করণে (হোমব্রিউয়ের মাধ্যমে) আপডেট করেছি, তবে এই আচরণটি পরিবর্তনের জন্য আমি আর কিছু করেছিলাম বলে ভাবতে পারি না। এটি কি কোনও সেটিং, না অন্যভাবে যাবার পথে ফিরে আসার কিছু উপায় আছে?

উত্তর:


157

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

আপনি --no-editএই আচরণটি এড়াতে পতাকা ব্যবহার করতে পারেন , তবে, ভাল, না। ইতিহাসে যেকোনও কমিটের মতো মার্জ কমিটস ভালভাবে তৈরি করা উচিত। আপনার ইতিহাস দরকারী ছাড়া কিছুই হওয়া উচিত।


54
সাহায্যের জন্য ধন্যবাদ. আমি একমত নই যে মার্জ কমিটগুলি সর্বদা বর্ণনামূলক হওয়া উচিত। আমি এটি সন্ধান করার কারণটি হ'ল কারণ যখনই আমি টানছি স্বয়ংক্রিয়ভাবে সংযুক্তিগুলি কেন আমাকে মার্জ করতে হবে তা ব্যাখ্যা করতে বলছেন, যা দ্রুত অযৌক্তিক হয়ে যায় কারণ এটি এমনকি যখন আমার কোনও পরিবর্তন হয় না তখনও হয়।
ব্রায়ান

10
এই আচরণটি এড়ানোর জন্য এটিও একটি দরকারী সংস্থান: লংএয়ার.নেট / ব্লগ / ২০০৯ / ০৪ / ১/ / গিট-ফেচ- এবং ডুবানো আপনাকে এড়ানো উচিত git pull; ব্যবহার git merge --ff-onlyকরে আপনি শুধু আপডেট করার চেষ্টা হয় এবং আপনি তা মনে করি না যদি আপনি কোন স্থানীয় পরিবর্তনগুলি আছে; git merge --no-ffআপনি যদি প্রকৃতপক্ষে কোনও শাখায় মার্জ করার চেষ্টা করছেন তবে ব্যবহার করুন
গ্লাইফ

6
এটি বন্ধ করার জন্য কোনও কনফিগার পতাকা রয়েছে? এটি প্রতিবার টাইপ করতে না পেরে বিরক্তিকর।
ল্যান্ডনস্ক্রপ

অসাধারণ. ক্রিস্টোফার ভাগ করে নেওয়ার জন্য ধন্যবাদ।
ল্যান্ডনস্ক্রপ

3
@ সানকোটিজি: এটি আপনার $EDITORসেটিংয়ের উপর নির্ভর করে তবে আপনি যদি ওএসএক্সের বাক্সের বাইরে গিট ব্যবহার করেন তবে এটি সম্ভবত 'vi' নামক একটি প্রোগ্রাম । i"INSERT" মোডে প্রবেশ করতে টাইপ করুন; আপনার বার্তা টাইপ করুন। তারপরে আপনি আঘাত ESCএবং তারপরে টাইপ করে সংরক্ষণ এবং প্রস্থান করতে পারেন :wq
ক্রিস্টোফার

58

ভবিষ্যতের ব্যবহারের জন্য একটি শর্টকাট তৈরি করতে: -

~/.gitconfigনিম্নলিখিতগুলির সাথে আপনার সম্পাদনা করুন :

[core]
    mergeoptions = --no-edit

অথবা টার্মিনালে নিম্নলিখিতগুলি সম্পাদন করুন

git config --global core.mergeoptions --no-edit


13
এটি আমার পক্ষে কার্যকর হয়নি (ওএসএক্স-এ গিট), এবং আমি এটি সঠিকভাবে সেট করেছি, এর আউটপুট দেখে git config --global core.mergeoptions
jvannistelrooy

টার্মিনাল কমান্ড নীচের মত হতে হবেgit config core.mergeoptions --no-edit
এস Mert

@ সিমসেকমার্ট যা কেবলমাত্র বর্তমান গির্জার ভাণ্ডারগুলিতে .gitconfig সম্পাদনা করবে, বিশ্বব্যাপী প্রতিটি গিট সংগ্রহস্থলের জন্য নয়
ডালাস ক্লার্ক

@ অভিষেকগোল পরিবর্তনগুলি প্রভাবিত করার জন্য আপনার টার্মিনাল পুনরায় চালু করার দরকার হতে পারে
ডালাস ক্লার্ক ২

@ জাভান্নিসটেলারয় পরিবর্তনগুলি প্রভাবিত করার জন্য আপনার টার্মিনাল পুনরায় চালু করার দরকার হতে পারে
ডালাস ক্লার্ক

11

প্রথমে উপরের ক্রিস্টোফারের উত্তরের সতর্কবাণীগুলিতে মনোযোগ দিন।

তারপরে, আপনি যদি এখনও স্বয়ংক্রিয় মার্জ কমিট বার্তা সম্পাদনা অক্ষম করতে চান তবে এই পরিবেশটি পরিবর্তনশীল সেট করুন:

    GIT_MERGE_AUTOEDIT=no

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


--no-editপতাকাটি ব্যবহারের চেয়ে কীভাবে এটি আলাদা হতে পারে তা আপনি ব্যাখ্যা করতে পারেন ?
আলেকজান্ডার মিলস

2
আমি কার্যকরী পার্থক্য সম্পর্কে জানি না, তবে সুবিধার কারণটি এটিকে সার্থক করে তোলে। --no-editপতাকা, প্রতিটি ব্যবহারের সঙ্গে কমান্ড লাইন পুনরাবৃত্তি করা যেমন এখানে ডালাস ক্লার্ক এর উত্তর বর্ণনা অনুযায়ী সেটিংসে কাজ বলে মনে হচ্ছে না হয়েছে। পরিবেশের পরিবর্তনশীল সেট করা এই সেটিংটি স্টিক করতে আমার জানা একমাত্র উপায়।
emackey
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.