আমি যা দেখতে পাচ্ছি তার প্রধান কারণটি হ'ল:
- পুলের অনুরোধগুলিকে মার্জ করার জন্য গিটহাব ইউআই বর্তমানে (অক্টোবর 2015) আপনাকে বাধ্যতামূলক বার্তার প্রথম লাইনটি সম্পাদনা করার অনুমতি দেয় না, এটি বাধ্য করে
Merge pull request #123 from joebloggs/fix-snafoo
- কমিটের ইতিহাস ব্রাউজ করার জন্য গিটহাব ইউআই বর্তমানে আপনাকে শাখার ইতিহাস
--first-parent
দৃষ্টিকোণ থেকে দেখার অনুমতি দেয় না
- গিটহাব ইউআই বর্তমানে কোনও ফাইলের জন্য দোষ দেখার জন্য আপনাকে ফাইলটির
--first-parent
দোষটি দৃষ্টিকোণ দিয়ে দেখতে দেয় না (নোট করুন এটি কেবল গিট ২.6.২ এ স্থির করা হয়েছিল, তাই আমরা গিটহাবকে ক্ষমা করতে পারিনি যাতে এটি ছিল না উপলব্ধ)
সুতরাং আপনি যখন উপরোক্ত এই তিনটি পরিস্থিতি একত্রিত করেন, তখন আপনি এমন পরিস্থিতি পাবেন যেখানে অসমর্থিত প্রতিশ্রুতিগুলি গিটহাব ইউআই থেকে কুরুচিপূর্ণ দেখাবে।
স্কোয়াশেড কমিটগুলির সাথে আপনার ইতিহাসটি দেখতে কিছুটা দেখতে হবে
1256556316... Merge pull request #423 from jrandom/add-slideshows
7hgf8978g9... Added new slideshow feature
56556316ad... Merge pull request #324 from ahacker/fix-android-display
787g8fgf78... Hotfix for android display issue
f56556316e... Merge pull request #28 from somwhere/select-lang-popup
9080gf6567... Implemented pop-up to select language
স্কোয়াশড কমিট না করে ইতিহাস দেখতে কিছুটা এমন দেখাবে
1256556316... Merge pull request #423 from jrandom/add-slideshows
7hgf8978g9... Added new slideshow feature, JIRA # 848394839
85493g2458... Fixed slideshow display issue in ie
gh354354gh... wip, done for the week
789fdfffdf... minor alignment issue
56556316ad... Merge pull request #324 from ahacker/fix-android-display
787g8fgf78... hotfix for #5849564648
f56556316e... Merge pull request #28 from somwhere/select-lang-popup
9080gf6567... implemented feature # 65896859
gh34839843... minor fix (typo) for 3rd test
যখন আপনি গিটিহাব ইউআই ব্যবহারের মধ্যে নিজেকে সীমাবদ্ধ রাখেন এমন কোনও পিআর ট্রেসিংয়ে যখন আপনি প্রচুর প্রতিশ্রুতিবদ্ধ হন তখন কিছুটা দুঃস্বপ্ন হয়ে উঠতে পারে ।
উদাহরণস্বরূপ, আপনি কোনও নাল পয়েন্টারটি কোনও ফাইলের কোথাও ডি-রেফারেন্সড হিসাবে দেখতে পেয়েছেন ... সুতরাং আপনি বলবেন "এটি কে করেছে এবং কখন? কোন প্রকাশ সংস্করণগুলি প্রভাবিত হয়?" তারপরে আপনি গিটহাব ইউআইতে দোষারোপের দিকে ঘুরে দেখেন এবং দেখবেন যে লাইনটি পরিবর্তিত হয়েছিল789fdfffdf
... "ওহ তবে এক সেকেন্ড অপেক্ষা করুন, সেই বাকী কোডটি বাকী কোডের সাথে ফিট করার জন্য কেবল তার লাইনটি বদলেছে", সুতরাং এখন আপনাকে প্যারেন্ট কমিটে আবার ফাইলের জন্য ট্রি স্টেটে নেভিগেট করতে হবে এবং পুনরায় দেখা করতে হবে দোষ পৃষ্ঠার ... অবশেষে আপনি প্রতিশ্রুতিটি সন্ধান করুন ... এটি 6 মাস আগে থেকে একটি প্রতিশ্রুতি ... "ওহ **** এটি 6 মাস ব্যবহারকারীদের উপর প্রভাব ফেলতে পারে" আপনি বলছেন ... আহ, তবে অপেক্ষা করুন, সেই প্রতিশ্রুতি আসলে একটি পুল অনুরোধে ছিল এবং এটি গতকালই একীভূত হয়েছিল এবং এখনও কেউ মুক্তি প্রকাশ করেনি ... "স্কোয়াশিং ইতিহাস ছাড়াই কমিটস মার্জ করার জন্য ধিক্কার জানাই মানুষ" এমন কান্না যা সাধারণত প্রায় 2 বা 3 কোড প্রত্নতত্ত্ব অভিযানের পরে শোনা যায় গিটহাব ইউআই
আপনি এখন গিট কমান্ড লাইনটি (এবং সুপার-অসাধারণ ২.6.২ যার সমাধান রয়েছে git blame --first-parent
) ব্যবহার করে এটি কীভাবে কাজ করে তা এখন বিবেচনা করা যাক
- আপনি যদি গিট কমান্ড লাইনটি ব্যবহার করে থাকেন তবে আপনি মার্জ কমিট ম্যাসেজ সম্পূর্ণরূপে নিয়ন্ত্রণ করতে সক্ষম হবেন এবং এভাবে মার্জ কমিটের একটি চমৎকার সারসংক্ষেপ লাইন থাকতে পারে।
সুতরাং আমাদের প্রতিশ্রুতিবদ্ধ ইতিহাস দেখতে হবে
$ git log
1256556316... #423 Added new slideshow feature
7hgf8978g9... Added new slideshow feature, JIRA # 848394839
85493g2458... Fixed slideshow display issue in ie
gh354354gh... wip, done for the week
789fdfffdf... minor alignment issue
56556316ad... #324 Hotfix for android display issue
787g8fgf78... hotfix for #5849564648
f56556316e... #28 Implemented pop-up to select language
9080gf6567... implemented feature # 65896859
gh34839843... minor fix (typo) for 3rd test
তবে আমরাও করতে পারি
$ git log --first-parent
1256556316... #423 Added new slideshow feature
56556316ad... #324 Hotfix for android display issue
f56556316e... #28 Implemented pop-up to select language
(অন্য কথায়: গিট সিএলআই আপনাকে আপনার পিষ্টক পেতে দেয় এবং এটিও খেতে দেয়)
এখন যখন আমরা নাল পয়েন্টার ইস্যুতে আঘাত করি ... ভাল আমরা কেবল ব্যবহার করি git blame --first-parent -w dodgy-file.c
এবং আমাদের তত্ক্ষণাত সেই সঠিক প্রতিশ্রুতি দেওয়া হয় যেখানে সাধারণ শ্বেত স্পেস পরিবর্তনগুলি উপেক্ষা করে মাস্টার শাখায় নাল পয়েন্টার ডি-রেফারেন্স চালু হয়েছিল।
অবশ্যই আপনি যদি গিটহাব ইউআই ব্যবহার করে মার্জগুলি করছেন তবে git log --first-parent
সত্যই কৃপণতার সাথে গিটহাবকে একীভূত প্রতিশ্রুতি বার্তার প্রথম লাইন জোর করে বলার জন্য ধন্যবাদ:
1256556316... Merge pull request #423 from jrandom/add-slideshows
56556316ad... Merge pull request #324 from ahacker/fix-android-display
f56556316e... Merge pull request #28 from somwhere/select-lang-popup
একটি দীর্ঘ গল্প সংক্ষিপ্ত কাটা:
গিটহাব ইউআই (অক্টোবর ২০১৫) এর কীভাবে টানার অনুরোধগুলিকে একীভূত করে, কীভাবে এটি প্রতিশ্রুতিবদ্ধ ইতিহাস উপস্থাপন করে এবং কীভাবে এটি দোষী তথ্যের বৈশিষ্ট্যকে বিশিষ্ট করে তার সাথে অনেকগুলি ত্রুটি রয়েছে। গিটহাব ইউআইতে এই ত্রুটিগুলি ঘাটানোর বর্তমান সেরা উপায় হ'ল লোককে মার্জ করার আগে তাদের প্রতিশ্রুতিগুলি স্কোয়াশ করার জন্য অনুরোধ করা।
গিট সিএলআই-এর এই সমস্যাগুলি নেই এবং আপনি কোন দৃশ্যটি দেখতে চান তা সহজেই বেছে নিতে পারেন যাতে কোনও নির্দিষ্ট পরিবর্তন সেই কারণেই করা হয়েছিল (অনর্থক কমিটের ইতিহাস দেখে) পাশাপাশি আপনি উভয়ই জানতে পারবেন কার্যকরভাবে স্কোয়াশেড কমিটগুলি দেখুন।
স্ক্রিপ্ট পোস্ট করুন
স্কোয়াশিং কমিটের প্রায়শই উল্লেখ করা চূড়ান্ত কারণটি হ'ল ব্যাকপোর্টিং সহজ করে তোলা ... যদি আপনার কাছে কেবল ব্যাক বোর্টে প্রতিশ্রুতি থাকে (যেমন স্কোয়াশেড কমিট) থাকে তবে চেরি পিক করা সহজ ...
ঠিক আছে আপনি যদি গিট ইতিহাসের সাথে তাকান git log --first-parent
তবে আপনি কেবল মেশানো কমিটগুলি চেরি চয়ন করতে পারেন। অধিকাংশ মানুষ বিভ্রান্ত চেরি পিকিং একত্রীকরণ করে কারণ আপনার নির্দিষ্ট করতে হবে পেতে -m N
বিকল্প কিন্তু যদি আপনার কাছ থেকে কমিট পেয়েছিলাম git log --first-parent
তারপর আপনাকে জানাতে চাই যে এটি প্রথম পিতা বা মাতা যে আপনাকে অনুসরণ করতে তাই এটি হতে হবে চাইgit cherry-pick -m 1 ...