গিট শাখাগুলি কীভাবে কাজ করবে? আমি কি মাস্টার শাখাটি সরাতে পারি?


22

আমার একটি প্রকল্প রয়েছে যার 2 টি শাখা, উন্নয়ন এবং উত্পাদন রয়েছে। আমি মাস্টার শাখা ব্যবহার করছি না এবং প্রতিবার আমি git statusএটি লিখছি আমাকে জানায় যে আমার শাখা মাস্টারের থেকে কত এগিয়ে ahead

আমি যখন মাস্টার শাখাটি মুছতে চেষ্টা করি তখন git branch -d masterএটি কেবল আমার স্থানীয় সংগ্রহস্থলে এবং মুছে ফেলা হবে দূরবর্তী গিট সার্ভারে। কোন ধারনা?

উত্তর:


34

গিটে একটি শাখা হ'ল কমিটের (কেবলমাত্র: চেকিন) তালিকাভুক্ত। নতুন ব্যবহারকারীর জন্য কিছুটা বিভ্রান্তিকর হতে পারে এমন কিছু হ'ল শাখাগুলির নাম রাখার দরকার নেই (যদিও বেশিরভাগ পরিস্থিতিতে আপনি এটি চান); এবং কোনও নির্দিষ্ট শাখা সম্পর্কে বিশেষ কিছু নেই ( masterযখন আপনি কোনও ভান্ডার শুরু করেন তখন শাখাটি আপনার জন্য তৈরি করা পূর্বনির্ধারিত ডিফল্ট)।

আপনি সম্ভবত এটি ইতিমধ্যে জানেন, তবে গীত জনপ্রিয় "সাবভার্সন" এর মতো কিছু অন্যান্য সংস্করণ নিয়ন্ত্রণ সিস্টেমের চেয়ে আলাদা, কারণ প্রতিটি "ওয়ার্কিং কপি" (সাবভার্সিয়ান ভাষায়) এটি নিজস্ব নিজস্ব সংগ্রহস্থল ... বাস্তবে, বিশেষভাবে কিছুই নেই বিশেষ কোনও অনুলিপি সম্পর্কে বিশেষ; চূড়ান্ত পণ্য সংরক্ষণের জন্য ব্যবহৃত একটি "অনন্য" হিসাবে একটি অনুলিপি সাধারণত একমত হয়েছে except

সুতরাং, আপনার প্রশ্নের পিছনে ... আপনার স্থানীয় অনুলিপিটি শুরু করার সময় আপনি ক্লোন করা "ক্যানোনিকাল" ভাণ্ডারে ডিফল্টরূপে একটি "মাস্টার" শাখা রয়েছে; এবং এটি প্রায় আটকে আছে। এখন, যদি আপনার কম্পিউটারে মাস্টার রিপোজিটরি রয়েছে তবে আপনি লগইন করে চালাতে পারবেন:

git branch -d master

তবে, আপনি যদি এটি করতে সক্ষম না হন তবে আপনি এটি আপনার স্থানীয় মেশিন থেকে করতে পারেন। git branchকমান্ড একটি আছে -rযা দূরবর্তী সংগ্রহস্থল প্রভাবিত বিকল্প। অন্য কথায়, নিম্নলিখিত কমান্ডটি চালানো উচিত:

git branch -d -r master

উল্লেখ্য যে এই দুটি ক্ষেত্রেই; আমি ধরে নিচ্ছি masterযে আপনার স্থানীয় অনুলিপিটি বর্তমানে বসে থাকা ইতিহাসের ইতিহাসে পুরোপুরি একত্রী হয়ে গেছে। যদি আপনি এর masterআগে কখনও ব্যবহার না করেন (যেমন: আপনি কেবলমাত্র কখনও কখনও চেক ইন করেছেন developmentবা production) তবে আপনার উদ্বেগ করার কিছুই নেই। তবে, যদি আপনি (বা অন্য কেউ) জিনিসগুলি পরীক্ষা করে দেখছেন masterতবে আপনার সমস্যা হতে পারে। উপরের কমান্ডগুলিতে পরিবর্তন করে -dআপনি মুছে ফেলতে বাধ্য করতে পারেন -D; তবে আমি masterআগে থেকে কী আছে তা দেখার জন্য আমি উচ্চতর সুপারিশ করছি ! যদি আপনার কাছে দূরবর্তী কম্পিউটারে অ্যাক্সেস না থাকে তবে আপনি সম্ভবত এটি পুনরুদ্ধার করতে সক্ষম হবেন না!


যাইহোক; আপনি যদি (বা অন্য কেউ) গিতের কাছে নতুন হন, আমি জন উইগলির বটম আপ থেকে গিটটি পড়ার সর্বাধিক পরামর্শ দিই । যদিও এই নিবন্ধটি আবিষ্কার করার আগে আমি নিজেই গিটকে কিছুটা ব্যবহার করেছি, আমি এটি বুঝতে না পেরে এটি পড়া না হওয়া পর্যন্ত এটি কীভাবে কাজ করে। এটি বেশ কার্যকর!


3
আমি আমার আসল মন্তব্যটি লেখার কিছু সময় থেকেই গিটের আচরণ কিছুটা বদলে গেল। 1.7.12 গিট হিসাবে, git branch -d -r masterআর দূরবর্তী শাখাটি আর মুছবে না - এটি আপনার স্থানীয় অনুলিপিটির দূরবর্তী শাখার জ্ঞান মুছে দেয়। পরের বার আপনি git fetch, শাখা ফিরে আসবে! পরিবর্তে, আপনি চালাতে চান git push origin :master। মূলত আপনি এখানে যা করছেন তা কার্যকরভাবে মুছে ফেলা :দূরবর্তী শাখার (ডানদিকে ডানদিকে শাখার নাম) একটি নাল শাখা (বামদিকে শূন্য শাখার নাম ) টিপছে is :
mparker17

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

আপনার লিঙ্ক নিচ থেকে গীত মারা গেছেন, কিন্তু মনে হচ্ছে এই টেক্সট আপনি উল্লেখ করা হয় (?) আপনি নিশ্চিত গেল এবং হয়ত উত্তরে লিংক আপডেট?
অথবা ম্যাপার

বা ম্যাপার: এটি সেই পাঠ্যটিই আমি উল্লেখ করছি: নতুন লিঙ্কটির জন্য আপনাকে ধন্যবাদ! আমি উত্তরে লিঙ্কটি আপডেট করেছি।
mparker17

4

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

git push origin :master

এটি আপনার উত্স সার্ভার এবং ওভাররাইট মাস্টারে কিছুই (কোলনের আগে অংশ) ঠেলে দেবে না। অন্য কথায়, এটি মাস্টার ব্রাঙ্কটি দূর থেকে মুছে ফেলা উচিত।


আমি পেয়েছি: দূরবর্তী: ত্রুটি: বর্তমান শাখাটি মুছতে অস্বীকৃতি: রেফস / হেডস / মাস্টার টু github.com ***। গিট! [রিমোট প্রত্যাখ্যাত] মাস্টার (বর্তমান শাখা মুছে ফেলা নিষিদ্ধ) ত্রুটি: কিছু রেফ ' github.com ***। গিট' এর দিকে ঠেলে দিতে ব্যর্থ হয়েছে
Totty.js

1
@Totty সম্ভবত এই করতে পারেন সাহায্য: matthew-brett.github.io/pydagogue/gh_delete_master.html
MEM
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.