আমার কাছে একটি খালি সংগ্রহস্থল রয়েছে যা আমার প্রকল্পের কেন্দ্রীয় দোকান হিসাবে ব্যবহৃত হয়। সমস্ত বিকাশকারী git clone <repo>এটির সাথে ভাগ করে নিতে। যখন তারা ক্লোন, তারা মাস্টার শাখার একটি চেকআউট পেতে (যদি না তারা git clone -n) কারণ repo.git/HEADরয়েছে ref: refs/heads/master, এই উপার্জন সক্রিয় শাখা ।
প্রশ্নটি হল, আমি কীভাবে কার্যকরভাবে শাখা পরিবর্তন করব ? আমি কেবল repo.git/HEADফাইলটি সরাসরি হ্যাক করতে পারি , তবে এটি অদ্ভুত বলে মনে হচ্ছে এবং ভাল, হ্যাকি।
আমি git checkout <otherbranch>রেপো .gitডিরেক্টরিতে চেষ্টা করেছিলাম , কিন্তু এটি ব্যর্থ হয়েছিল কারণ আমি কোনও কাজের গাছের মধ্যে ছিলাম না।
আমি চেষ্টা করেছি git update-ref HEAD refs/heads/otherbranchকিন্তু কেবল আপডেট করা রেফ / হেড / মাস্টারকে রেফ / হেড / অন্যান্য ব্রাঞ্চের মতো হতে পারে (ঠিক আছে, আমি এটি একটি ডমি রিপোজিটরিতে করেছি, আমার প্রযোজনা নয়!)
আমি চেষ্টা করেছি git update-ref --no-deref HEAD refs/heads/otherbranchএবং এটি প্রায় কাজ করেছে। এটি HEADফাইল আপডেট করেছে , তবে এটি এটি দ্বারা নির্দেশিত প্রতিশ্রুতির SHA1 এ সেট করেছে refs/heads/otherbranch।
আমি গিট সংস্করণ দিয়ে পরীক্ষা করছি 1.7.0.2.msysgit.0।
আমি অনুমান করছি যে এটি করার কোনও উপায় নেই git push, কারণ সমস্ত এবং সূর্যবৃত্তিকে আপনার ডিফল্ট শাখা পরিবর্তন করার সুযোগটি কিছুটা অনিরাপদ (!) বলে মনে হচ্ছে, তবে অবশ্যই .gitসরাসরি HEADফাইল হ্যাক করার চেয়ে রেপো ডিরেক্টরিতে এটি করার আরও ভাল উপায় আছে ।