ฉันมีสาขาที่ฉันต้องการย้ายไปเก็บที่แยก Git และเก็บประวัติของสาขานั้นไว้ในกระบวนการ จนถึงตอนนี้ฉันได้ดูgit filter-branch
แต่ฉันไม่สามารถบอกได้ว่ามันสามารถทำสิ่งที่ฉันต้องการจะทำหรือไม่
ฉันจะแยกสาขา Git ออกเป็นที่เก็บของตนเองได้อย่างไร
ฉันมีสาขาที่ฉันต้องการย้ายไปเก็บที่แยก Git และเก็บประวัติของสาขานั้นไว้ในกระบวนการ จนถึงตอนนี้ฉันได้ดูgit filter-branch
แต่ฉันไม่สามารถบอกได้ว่ามันสามารถทำสิ่งที่ฉันต้องการจะทำหรือไม่
ฉันจะแยกสาขา Git ออกเป็นที่เก็บของตนเองได้อย่างไร
คำตอบ:
คุณสามารถผลักสาขาไปยังที่เก็บใหม่ ประวัติศาสตร์ทั้งหมดจะไปกับมัน จากนั้นคุณสามารถเลือกได้ว่าจะลบสาขาจากที่เก็บต้นฉบับหรือไม่
เช่น
git push url://to/new/repository.git branch-to-move:new-branch-name
สำหรับที่เก็บใหม่โดยทั่วไปแล้ว new-branch-name จะเป็น master
git init
สร้างใหม่พื้นที่เก็บข้อมูลที่ว่างเปล่าที่สามารถทำได้ด้วย
git push url://to/new/repository.git branch-to-move:new-branch-name
warning: remote HEAD refers to nonexistent ref, unable to checkout.
แสดงความคิดเห็นดังกล่าวข้างต้นถูกต้องมิฉะนั้นคุณจะไม่มีนายในการมีและกระบวนการโคลนจะสรุป ถ้ามีอยู่ในขั้นตอนนั้นก็ไปกับgit checkout -b branch-to-move
คุณและคุณปลอดภัยหรือคุณก็ไปกับgit checkout -b master
ที่จะมีสาขาต้นแบบของคุณ :)
git checkout -b master
แก้ไขปัญหาของฉันมันอยู่บนหน้าจอerror: src refspec master does not match any.
(สงสัยว่าทำไมฉันไม่เห็นชื่อสาขาที่ฉันอยู่) ขอบคุณ
url
URL นั้นควรเป็น git เช่น git@github.com: brianzelip / Groceries.git; 3) branch-to-move
เป็นสาขาของ repo ปัจจุบันที่คุณต้องการทำเป็น repo ใหม่; 4) new-branch-name
เป็นชื่อที่คุณต้องการสำหรับสาขาใหม่ใน repo ใหม่ที่ถูกสร้างขึ้นเช่น: master
.
สิ่งนี้จะเก็บประวัติของกิ่งไม้ทั้งหมด แต่ทำสำเนาของคุณชี้ไปที่สาขาหนึ่งโดยเฉพาะ:
git clone -b newbranch CurrentRepo NewRepo
นี่ไม่ใช่ 'ย้าย' อะไรเลยเพียงแค่ทำสำเนา
clone -b
เป็นเรื่องใหม่ มันต้องมีคอมไพล์> = 1.6.5 (เผยแพร่เมื่อเดือนตุลาคม 2552)