মেইলিং তালিকা + git format-patch+ git applyলেখক তৈরি করতে পারে! = প্রতিশ্রুতিবদ্ধ
লিনাক্স কার্নেলের মতো প্রকল্পগুলিতে যেখানে প্যাচগুলি রয়েছে:
বিভিন্ন লেখক এবং প্রতিশ্রুতিবদ্ধদের সাথে একক নতুন প্রতিশ্রুতি উত্পন্ন:
- লেখক প্যাচ লিখেছেন
- প্রতিশ্রুতিবদ্ধ হ'ল কে প্রকল্পের রক্ষণাবেক্ষণকারী এবং কে প্যাচটি মার্জ করেছে
উদাহরণস্বরূপ দেখুন এলোমেলোভাবে নির্বাচিত প্যাচ এবং সম্পর্কিত কমিট:
গিটহাব এবং গিটল্যাবের মতো গিট ওয়েব ইন্টারফেসগুলি লেখক তৈরি করতে পারে বা নাও পারে! = প্রতিশ্রুতিবদ্ধ
যেহেতু গিট (হাব | ল্যাব) উভয়টি একই মেশিনে প্রবাহ এবং কাঁটাচামান সংগ্রহস্থল উভয়কে ধারণ করে, তাই তারা স্থানীয়ভাবে আপনি যে কোনও কাজ করতে পারবেন, যার মধ্যে দুটিও অন্তর্ভুক্ত:
মার্জ কমিট তৈরি করুন।
লেখক উত্পন্ন করে না! = প্রতিশ্রুতিবদ্ধ।
এসএএএ বা নতুন প্রতিশ্রুতি অক্ষত রাখে এবং একটি নতুন প্রতিশ্রুতি তৈরি করে:
* Merge commit (committer == author == project maintainer)
|\
| * Feature commit (committer == author == contributor)
|/
* Old master (random committer and author)
.তিহাসিকভাবে, এটি গিটহাবের প্রথম উপলব্ধ পদ্ধতি ছিল।
স্থানীয়ভাবে, এটি দিয়ে সম্পন্ন করা হয় git merge --no-ff।
এটি প্রতি পুল অনুরোধে দুটি কমিট তৈরি করে এবং গিট ইতিহাসে একটি কাঁটাচামচ রাখে।
উপরে রিবেস master
গিটহাব প্রতিশ্রুতিবদ্ধ == যে কেউ মার্জ বোতাম টিপেছে সেগুলি সেট করার কমিটগুলিও হ্যাক করে। এটি বাধ্যতামূলক নয় এবং এমনকি স্থানীয়ভাবে git rebaseএটি ডিফল্টরূপেও করা হয় না তবে এটি প্রকল্প রক্ষণকারীকে জবাবদিহিতা দেয়।
গিট গাছটি এখন দেখতে দেখতে:
* Feature commit (committer == maintainer, author == contributor)
|
* Old master (random committer and author)
যা হ'ল git applyইমেল প্যাচগুলির মতো।
বর্তমানে গিটহাবে:
- মার্জ বোতামে ড্রপডাউন মাধ্যমে মার্জ করার সময় আপনি পদ্ধতিটি চয়ন করেন
- পদ্ধতিগুলি মালিক দ্বারা রেপো সেটিংসে সক্ষম বা অক্ষম করা যায়
https://help.github.com/articles/about-merge-methods-on-github/
কীভাবে একটি নতুন প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতিবদ্ধ সেট?
প্রতিবেদককে ওভাররাইড করার জন্য পরিবেশের পরিবর্তনশীলগুলি ব্যবহার করে আমি সবচেয়ে ভাল খুঁজে পেতে পারি:
GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='a' git commit --author 'a <a>'
প্রদত্ত প্রতিশ্রুতিটির প্রতিশ্রুতিবদ্ধ এবং প্রতিশ্রুতিবদ্ধ তারিখ কীভাবে পাবেন?
কেবলমাত্র লেখকের ডেটা ডিফল্ট অনুসারে প্রদর্শিত হয় git log।
প্রতিশ্রুতিবদ্ধতার তারিখটি দেখতে আপনি যা করতে পারেন:
লগটি বিশেষভাবে এর জন্য বিন্যাস করুন:
git log --pretty='%cn %cd' -n1 HEAD
যেখানে cnএবং cdজন্য দাঁড়ানো Committer NameএবংCommitter Date
fullerপূর্বনির্ধারিত বিন্যাসটি ব্যবহার করুন :
git log --format=fuller
আরও দেখুন: 'কমিট তারিখ' দেখানোর জন্য 'গিট লগ' কীভাবে কনফিগার করবেন
নিম্ন স্তরে যান এবং সম্পূর্ণ কমিট ডেটা দেখান:
git cat-file -p HEAD
নতুন প্রতিশ্রুতিবদ্ধতার অঙ্গীকারের তারিখটি কীভাবে সেট করবেন?
git commit --date কেবল লেখকের তারিখ নির্ধারণ করে: প্রতিশ্রুতিবদ্ধতার তারিখের জন্য আমি পরিবেশের পরিবর্তনশীল সহ সেরাটি খুঁজে পেতে পারি:
GIT_COMMITTER_DATE='2000-01-01T00:00:00+0000' git commit --date='2000-01-01T00:00:00+0000'
আরও দেখুন: গীতে লেখক এবং প্রতিশ্রুতিবদ্ধদের মধ্যে পার্থক্য কী?
গিট কীভাবে লেখক বনাম প্রতিশ্রুতিবদ্ধ অভ্যন্তরীণভাবে সঞ্চয় করে?
দেখুন: গিট কমিট অবজেক্টের ফাইল ফর্ম্যাট কী?
মূলত, কমিট একটি পাঠ্য ফাইল এবং এতে দুটি লাইন পৃথক ক্ষেত্র রয়েছে:
author {author_name} <{author_email}> {author_date_seconds} {author_date_timezone}
committer {committer_name} <{committer_email}> {committer_date_seconds} {committer_date_timezone}
এটি পরিষ্কার করে তোলে যে দু'জনই প্রতিশ্রুতিবদ্ধ অবজেক্টের দুটি সম্পূর্ণ স্বাধীন ডেটা এন্ট্রি।