আমি কীভাবে আমার গিট 'মাস্টার' শাখার নাম 'রিলিজ' করব?


116

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

আমি বুঝতে পারি আমি কেবল নিম্নলিখিত ব্যবহার করে স্থানীয়ভাবে মাস্টার শাখার নাম পরিবর্তন করতে পারি:

git branch -m master release

তবে, এটি কেবল স্থানীয়ভাবে। এমনকি যদি আমি এটিকে দূরবর্তী দিকে ধাক্কা দিয়েছি, তবুও হেড এখনও রিমোট মাস্টার শাখায় নির্দেশ করে। আমি মাস্টার ব্রাঞ্চকে পুরোপুরি মুক্তি দিতে এবং প্রাথমিক ক্লোনটির পরে ডিফল্ট স্থানীয় শাখা তৈরি করতে চাই, মুক্ত হোক।

আমি কীভাবে এটি অর্জন করতে পারি?

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


4
হেই, যথেষ্ট ফর্সা। দীর্ঘমেয়াদী মূল্য কমপক্ষে চেষ্টা করার জন্য যথেষ্ট বেশি।
কাইল হেইস


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

4
git branchএখন একটি --moveপতাকা git-scm.com/docs/git-branch# ডকুমেন্টেশন
git-

উত্তর:


141
git checkout -b release master    # Create and switch to the release branch
git push -u origin release        # Push the release branch to the remote and track it
git branch -d master              # Delete local master
git push --delete origin master   # Delete remote master
git remote prune origin           # Delete the remote tracking branch

দয়া করে মনে রাখবেন, আপনি যদি গিটহাব ব্যবহার করছেন তবে আপনাকে প্রথমে পদক্ষেপ 3 পরে গিটহাবের "ডিফল্ট" শাখাটি পরিবর্তন করতে হবে:

Github.com এ আপনার সংগ্রহস্থলে সেটিংসশাখাডিফল্ট শাখা যান । এটি প্রকাশের জন্য পরিবর্তন করুন এবং তারপরে বাকী পদক্ষেপগুলি করুন।


4
আমি যখন গিট পুশ করার চেষ্টা করি
কাইল হেইস

8
আপনি গিথুব বা অনুরূপ কিছু ব্যবহার করছেন, আপনার ডিফল্ট শাখাটি অন্য কিছু তৈরি করতে হবে: matthew-brett.github.com/pydagogue/gh_delete_master.html বা কেবল সেখানে মাস্টার রেখে এড়িয়ে চলুন
অ্যাডাম ডাইমিট্রুক

হ্যাঁ, আমাদের একটি দৃষ্টান্তমূলক উদাহরণ রয়েছে। এটি একটি বিকল্প কিনা তা আমাকে দেখতে দিন।
কাইল হেইস

দেখে মনে হচ্ছে gitorious 'কমিট মত আঙ্গুলসমূহ মাস্টার শাখা মুছে ফেলার নিষেধ - কোনো ভালো কারণ আমি দেখতে পারেন: /
fge

4
! [remote rejected] branch (deletion of the current branch prohibited) বিটবকেট নিয়েও একই ঘটনা ঘটবে। সেটিংস স্ক্রিনে (গিয়ার আইকনের নীচে) "মেইন রিপোজিটরি" স্যুইচ করুন
dnfehren

13

আপনার মাস্টার শাখা দেখুন

git checkout master

আপনার রিলিজ শাখা তৈরি করুন এবং এতে স্যুইচ করুন:

git branch release
git checkout release

সার্ভারে এটি পুশ করুন

git push origin release

সার্ভারে মাস্টার শাখা রেফারেন্স মুছুন

git push origin :master

স্থানীয় মাস্টার শাখা মুছুন

git branch -d master

4
আমি এই পদক্ষেপগুলি দিয়ে বলতে পারি যে আমি উপরে উল্লিখিত হিসাবে একই ত্রুটিতে চলে যাব।
কাইল হেইস

@ কাইলহয়েস এটি সার্ভারের একটি কনফিগারেশন সমস্যা। যদিও এটি ডিফল্টরূপে এইভাবে, প্রক্রিয়াটি এমনভাবে পরিবর্তিত হবে যা ব্যবহারকারীর কাছে স্পষ্ট হওয়া উচিত বা স্ট্যাকওভারফ্লোতে সহজেই আবিষ্কারযোগ্য
জেফ ফেরল্যান্ড

আপনি কোনও শাখা মুছতে পারার আগে আপনাকে অন্য একটি শাখায় স্যুইচ করতে হবে।
মার্টিন্ডওয়ার্ড

5

দ্রষ্টব্য: এই উত্তরটি স্ব-হোস্টেড গিট সার্ভারের জন্য যেখানে আপনার কমান্ড লাইনের অ্যাক্সেস রয়েছে intended

যেহেতু remote masterক্লায়েন্টের কাছ থেকে মুছে ফেলার চেষ্টা করা সত্যই অনুমোদিত নয় এবং আমি মনে করি নিষেধ করা denyDeleteCurrentবোধগম্য হয়, তাই আমি সেটিংটি পরিবর্তন করতে চাই না।

তবে, আমি দেখতে পেয়েছি যে যদি আপনার রিমোট সার্ভারে কমান্ড লাইন অ্যাক্সেস থাকে তবে আপনার মাস্টারটির নামকরণের সবচেয়ে সহজ উপায় হ'ল সরাসরি রিমোটে নাম পরিবর্তন কমান্ড চালানো।

এটি আমার পক্ষে কাজ করেছে:

  1. রিমোট গিট সার্ভারে এসএসএইচ এর মাধ্যমে লগইন করুন
  2. আপনার প্রকল্পের xxx.git ফোল্ডারে যান
  3. চালান: git branch -m master release

এখন দূরবর্তী সংগ্রহস্থলটিকে releaseতার ডিফল্ট শাখা হিসাবে ব্যবহার করে এবং git cloneযে কোনও ক্লায়েন্টের সেই সংগ্রহস্থলের ডিফল্টরূপে রিলিজ শাখাটি পরীক্ষা করে দেখাবে।

এটি আপনার প্রয়োজন অনুসারে কনফিগার করার জন্য খালি সংগ্রহস্থল স্থাপন করার পরেও এটি খুব সহায়ক।


3

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

[receive]
        denyDeleteCurrent = warn

কনফিগারেশন।

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


2

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


1

আদর্শভাবে, আপনি ট্র্যাকিং সেটআপ করতে চান, তাই এটি করুন:

git push origin HEAD:release
git checkout --track origin/release

এখন, আপনি কি অন্যদের মুছতে চান?

git branch -d master
git push origin :master

সরল!


আমি যখন গিট পুশ অরিজিন: মাস্টার কমান্ড পেয়েছি তখন @ অ্যাডামের মন্তব্যে পোস্ট করা হিসাবে একই ত্রুটি পেয়েছি।
কাইল হেইস

0

যেহেতু আপনি শাখার নাম পরিবর্তন করে শেষ করেছেন, releaseরিমোটের জন্য হেড সেট করতে

git remote set-head origin release

তারপরে masterরিমোটে শাখাটি মুছতে , আপনাকে প্রশাসক হতে হবে, কমপক্ষে গিটহাবে। আরও তথ্যের জন্য এই পোস্টটি দেখুন দয়া করে ।


0

গিট ২.২৮ (২২ শে জুলাই ২০২০ প্রকাশিত) হিসাবে, আপনি এখন নতুন সংগ্রহস্থল শুরু করার সময় তৈরি করা শাখার নামটি কনফিগার করতে পারেন:

$ git config --global init.defaultBranch main

এই পরিবর্তনশীলটি সেট করার পরে, চলমান গিট টিআইএম একটি সংগ্রহশালা তৈরি করবে যার প্রাথমিক শাখা প্রধান:

$ git init

/ হোম / থোমাস / টেস্ট-git-repo/.git/ empty গিট স্ট্যাটাসে খালি গিট সংগ্রহস্থল শুরু

এখনও কোন প্রতিশ্রুতি নেই

প্রতিশ্রুতিবদ্ধ কিছুই (ফাইল তৈরি / অনুলিপি এবং ট্র্যাক করতে "গিট অ্যাড" ব্যবহার করুন) রিলিজ নোট: https://lore.kernel.org/git/xmqq5za8hpir.fsf@gitster.c.googlers.com/

সিসি কিলি

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