ฉันมีที่เก็บเปลือยที่ใช้เป็นร้านค้าส่วนกลางสำหรับโครงการของฉัน นักพัฒนาทั้งหมดทำgit clone <repo>เพื่อแบ่งปันกับมัน เมื่อพวกเขาทำโคลนพวกเขาได้รับเช็คเอาท์สาขาต้นแบบ (ยกเว้นกรณีที่พวกเขาทำgit clone -n) เพราะrepo.git/HEADมีref: refs/heads/masterนี้ทำให้ใช้งานสาขา
คำถามคือฉันจะเปลี่ยนสาขาที่ใช้งานได้อย่างถูกต้องได้อย่างไร? ฉันสามารถแฮ็คrepo.git/HEADไฟล์ได้โดยตรง แต่มันดูน่ารังเกียจและแฮ็คก็ดี
ฉันพยายามทำgit checkout <otherbranch>ใน.gitไดเรกทอรีrepo แต่นั่นล้มเหลวเพราะฉันไม่ได้อยู่ในแผนผังการทำงาน
ฉันพยายามgit update-ref HEAD refs/heads/otherbranchแต่ที่เพิ่งปรับปรุง refs / heads / master ให้เหมือนกับ refs / heads / otherbranch (โอเคฉันทำอันนั้นใน repository dummy ไม่ใช่ Production ของฉัน!)
ฉันพยายามgit update-ref --no-deref HEAD refs/heads/otherbranchและมันก็เกือบจะได้ผล มันปรับปรุงHEADไฟล์ แต่มันตั้งค่าให้ SHA1 refs/heads/otherbranchของกระทำชี้ไปตาม
1.7.0.2.msysgit.0ผมทดสอบกับรุ่นคอมไพล์
ฉันเดาว่าไม่มีวิธีที่จะทำเช่นนี้git pushเพราะการอนุญาตให้ใครต่อใครเปลี่ยนสาขาเริ่มต้นของคุณดูเหมือนจะไม่ปลอดภัย (!) แต่แน่นอนว่ามีวิธีที่ดีกว่าในการทำ.gitไดเรกทอรีrepo มากกว่าแฮ็คHEADไฟล์โดยตรง