আমি একটি Git শাখাবিন্যাস মডেল মোটামুটিভাবে যে অনুসরণ করে যে সঙ্গে একটি প্রকল্প আছে nvie এর Git-প্রবাহ ।
আমাদের প্রকাশের শাখাগুলি একটি সেমভিয়ার ফর্ম্যাটে নামকরণ করা হয়েছে , যেমনv1.5.2
একবার মুক্তির শাখাকে উত্পাদনের জন্য সবুজ আলো দেওয়া হয়ে গেলে, আমরা শাখাটি বন্ধ করে, এটি মাস্টারে মার্জ করে, ট্যাগ প্রয়োগ করে, এবং তারপরে শাখাটি মোছা করে।
আমরা অবিলম্বে রিলিজ শাখাটি মোছার সাথে সাথে আমরা শাখাটিকে ট্যাগ করার জন্য একই সনাক্তকারী ব্যবহার করেছি, উদাহরণস্বরূপ v1.5.2
রিলিজ শাখা বন্ধ করতে আমরা যে কমান্ডগুলি ব্যবহার করব তা এখানে:
$ git checkout master
$ git merge v1.5.2
$ git tag -a v1.5.2 -m "Version 1.5.2 - foo bar, baz, etc"
$ git branch -d v1.5.2
$ git branch -dr origin/v1.5.2
$ git push origin :v1.5.2
$ git push
$ git push --tags
এটি বেশিরভাগ ক্ষেত্রে কাজ করে বলে মনে হচ্ছে, তবে এটি দৃশ্যে কোনও সমস্যা সৃষ্টি করছে যেখানে গিট রেপোর অন্য একটি উদাহরণ (যেমন অন্য কোনও দেব মেশিন, বা মঞ্চ পরিবেশ) v1.5.2 শাখার স্থানীয় চেকআউট রয়েছে।
git push origin :v1.5.2
কমান্ডের সাহায্যে দূরবর্তী শাখা মুছে ফেলবে, কিন্তু স্থানীয় (যদি থাকে তাহলে) সমস্ত Repos মধ্যে শাখা সংস্করণ মুছে ফেলবে না।
এই v1.5.2
রেপোগুলিতে চেকআউট দেওয়ার সময় এটি একটি দ্ব্যর্থক রেফারেন্সের দিকে নিয়ে যায় :
$ git checkout v1.5.2
warning: refname 'v1.5.2' is ambiguous.
শাখাগুলির জন্য আলাদা সিনট্যাক্স ব্যবহার না করে এড়ানো যেতে পারে, উদাহরণস্বরূপ release-v1.5.2
, বা v1.5.2-rc
?
বা এটি অনিবার্য, এবং তাই মুছে ফেলা শাখা হিসাবে একই নামে একটি ট্যাগ তৈরি করার জন্য মৌলিকভাবে খারাপ ধারণা?
git checkout
বুলেটটিতে বলা হয়েছে যে যখন কোনও দ্বিপাক্ষিক উল্লেখ আছে তখন শাখার উপরের ট্যাগটি পরীক্ষা করে দেখবে, তবে এটি আমি যে আচরণটি দেখছি তা নয়, রেফ: gist.github.com/tommarshall/9376724 । এটি কি এমন কিছু যা গিটের আরও আধুনিক সংস্করণে পরিবর্তিত হয়েছে?gitconfig
এই আচরণটি পেতে আমি কি কোনও পতাকা সেট করতে পারি ?