ฉันต้องการสร้างสาขา GitHub ใหม่ชื่อrelease
.
สาขานี้ต้องว่าง ! อย่างไรก็ตามมีสาขาที่มีอยู่แล้วที่มี x commits และฉันไม่ต้องการมีประวัติการกระทำ
วิธีเดียวที่ฉันพบคือการสร้างสาขาในท้องถิ่น --orphan
ฉันต้องการสร้างสาขา GitHub ใหม่ชื่อrelease
.
สาขานี้ต้องว่าง ! อย่างไรก็ตามมีสาขาที่มีอยู่แล้วที่มี x commits และฉันไม่ต้องการมีประวัติการกระทำ
วิธีเดียวที่ฉันพบคือการสร้างสาขาในท้องถิ่น --orphan
git push origin _branch_
กับ
คำตอบ:
--orphan
ตัวเลือกมีอะไรผิดปกติ หากคุณต้องการสาขาที่ว่างเปล่าและไม่มีประวัตินี่คือวิธีที่จะไป ...
git checkout --orphan empty-branch
จากนั้นคุณสามารถลบไฟล์ทั้งหมดที่คุณมีในพื้นที่จัดเตรียม (เพื่อไม่ให้เกิดข้อผูกมัด):
git rm -rf .
ณ จุดนี้คุณมีสาขาว่างบนเครื่องของคุณ
ก่อนที่คุณจะสามารถพุชไปยัง GitHub (หรือที่เก็บ Git อื่น ๆ ) คุณจะต้องมีอย่างน้อยหนึ่งคอมมิตแม้ว่าจะไม่มีเนื้อหาใด ๆ ก็ตาม (เช่นคอมมิตว่าง) เนื่องจากคุณไม่สามารถพุชสาขาว่างได้
git commit --allow-empty -m "root commit"
สุดท้ายดันไปที่รีโมทแล้วเปิดเบียร์
git push origin empty-branch
git add .
ขั้นตอนหลังจากที่คุณลบไฟล์ทั้งหมดและก่อนที่คุณจะกระทำ?
--orphan
เป็นสิ่งที่ดีสำหรับการสร้างสาขาว่างในพื้นที่อย่างไรก็ตามในการที่จะผลักดันหรือโต้ตอบกับสาขาอื่นคุณจะต้องมีการคอมมิต
การสร้างคอมมิตใหม่ในสาขาเด็กกำพร้าไม่ใช่ความคิดที่ดีเพราะคุณจะไม่สามารถโต้ตอบกับสาขาอื่นได้ ได้แก่
git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories
คุณควรสร้างสาขาใหม่จากการกระทำครั้งแรกของ master แทน หากคอมมิตไม่ว่างคุณสามารถเพิ่มคอมมิตว่างก่อนอันแรกตามที่ @houtanb อธิบาย
คุณยังสามารถทำตามคำแนะนำที่นี่เพื่อสร้างคอมมิตว่างที่รากของmaster
สาขาของคุณ จากนั้นสร้างrelease
สาขาของคุณโดยที่รูทคอมมิตว่างนั้นอยู่
คำตอบที่ได้รับการยอมรับทำให้ฉันประสบปัญหาดังนั้นฉันจึงทำสิ่งนี้:
$ git branch
* staging
$ git branch master c74d99cf46f6ed23e742f2617e9908294b4a608b
$ git checkout master
Switched to branch 'master'
และได้รับสิ่งที่ฉันต้องการโดยไม่ต้องรวม / ดึงปัญหา ฉันต้องเลือกฐานคอมมิตเพื่อสร้างสาขาที่สองของฉันจาก