ฉันจะย้ายสาขา Git ออกไปยังที่เก็บข้อมูลของตัวเองได้อย่างไร


180

ฉันมีสาขาที่ฉันต้องการย้ายไปเก็บที่แยก Git และเก็บประวัติของสาขานั้นไว้ในกระบวนการ จนถึงตอนนี้ฉันได้ดูgit filter-branchแต่ฉันไม่สามารถบอกได้ว่ามันสามารถทำสิ่งที่ฉันต้องการจะทำหรือไม่

ฉันจะแยกสาขา Git ออกเป็นที่เก็บของตนเองได้อย่างไร

คำตอบ:


281

คุณสามารถผลักสาขาไปยังที่เก็บใหม่ ประวัติศาสตร์ทั้งหมดจะไปกับมัน จากนั้นคุณสามารถเลือกได้ว่าจะลบสาขาจากที่เก็บต้นฉบับหรือไม่

เช่น

git push url://to/new/repository.git branch-to-move:new-branch-name

สำหรับที่เก็บใหม่โดยทั่วไปแล้ว new-branch-name จะเป็น master

git initสร้างใหม่พื้นที่เก็บข้อมูลที่ว่างเปล่าที่สามารถทำได้ด้วย


15
ในกรณีที่ทุกคนสงสัยฉันจะแทนที่ URL ด้วยพา ธ ไปยังไดเรกทอรีที่เก็บ Git และทำงานได้อย่างสมบูรณ์
Aupajo

48
นอกจากนี้คุณยังสามารถตั้งชื่อสาขาในที่เก็บใหม่: git push url://to/new/repository.git branch-to-move:new-branch-name
Yves Van Broekhoven

4
Yves' warning: remote HEAD refers to nonexistent ref, unable to checkout.แสดงความคิดเห็นดังกล่าวข้างต้นถูกต้องมิฉะนั้นคุณจะไม่มีนายในการมีและกระบวนการโคลนจะสรุป ถ้ามีอยู่ในขั้นตอนนั้นก็ไปกับgit checkout -b branch-to-moveคุณและคุณปลอดภัยหรือคุณก็ไปกับgit checkout -b masterที่จะมีสาขาต้นแบบของคุณ :)
Ain Tohvri

git checkout -b masterแก้ไขปัญหาของฉันมันอยู่บนหน้าจอerror: src refspec master does not match any.(สงสัยว่าทำไมฉันไม่เห็นชื่อสาขาที่ฉันอยู่) ขอบคุณ
kangkyu

3
ในกรณีที่คำตอบนี้ทำให้คุณสับสนเช่นกันนี่คือวิธีที่ฉันใช้เพื่อทำให้มันทำงาน: 1) ในเทอร์มินัลของคุณอยู่ในไดเรกทอรีที่มี repo และสาขาที่คุณต้องการสร้าง repo ใหม่; 2) urlURL นั้นควรเป็น git เช่น git@github.com: brianzelip / Groceries.git; 3) branch-to-moveเป็นสาขาของ repo ปัจจุบันที่คุณต้องการทำเป็น repo ใหม่; 4) new-branch-nameเป็นชื่อที่คุณต้องการสำหรับสาขาใหม่ใน repo ใหม่ที่ถูกสร้างขึ้นเช่น: master.
Brian Zelip

19

สิ่งนี้จะเก็บประวัติของกิ่งไม้ทั้งหมด แต่ทำสำเนาของคุณชี้ไปที่สาขาหนึ่งโดยเฉพาะ:

git clone -b newbranch CurrentRepo NewRepo

นี่ไม่ใช่ 'ย้าย' อะไรเลยเพียงแค่ทำสำเนา


2
น่าสังเกตว่าclone -bเป็นเรื่องใหม่ มันต้องมีคอมไพล์> = 1.6.5 (เผยแพร่เมื่อเดือนตุลาคม 2552)
CB Bailey

ฉันมีปัญหาในการทำให้สิ่งนี้ทำงานได้ แต่ก่อนหน้านี้ฉันเห็นข้อความจาก Charles Bailey
Aupajo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.