ด้วย GitHub ฉันจะผลักดันสาขาทั้งหมดเมื่อเพิ่ม repo ที่มีอยู่ได้อย่างไร


125

ฉันสร้างที่เก็บ GitHub ใหม่ - ฉันต้องการนำ repo ที่มีอยู่ของฉันไปที่นั่น
ฉันทำตามคำแนะนำ:

cd existing_git_repo
git remote add origin git@github.com:acme-org/myprj.git
git push origin master

สิ่งนี้จะผลักดันสาขาหลักไปที่ GitHub เท่านั้น
ฉันจะผลักดันทุกอย่าง (รวมถึงทุกสาขา) ใน repo ที่มีอยู่ไปยังที่เก็บ GitHub ใหม่ได้อย่างไร


หมายเหตุ: คุณมีgit push --follow-tagsgit 1.8.3+ ด้วย (พฤษภาคม 2013) ดูคำตอบที่แก้ไขของฉันด้านล่าง
VonC

คำตอบ:


237

หมายเหตุ: git push - ทั้งหมดจะไม่พุชแท็กของคุณเฉพาะสาขาของคุณ

git push --all
git push --tags

จริงๆจะผลักดันทุกอย่าง โปรดดู " ตั้งค่าคอมไพล์เพื่อดึงและพุชทุกสาขา "
อย่าลืมตัว--dry-runเลือกในการทดสอบก่อนที่จะผลักดันทุกอย่างจริง
ดูความช่วยเหลือ GitHub " การทำงานกับรีโมท " เพื่อตั้งค่าต้นทางของคุณเป็นที่เก็บระยะไกล GitHub ของคุณ


ดังที่ได้กล่าวไว้ใน " How to make" git push "include tags within a branch? " git 1.8.3+ (May 2013) ได้แนะนำ:

git push --follow-tags

การดำเนินการนี้จะไม่ผลักแท็กทั้งหมด แต่จะมีเพียงแท็กที่เข้าถึงได้จาก Branch (es) HEAD (s) ที่คุณกำลังผลักดัน

ซึ่งสามารถช่วยรักษาการดำเนินการนั้น (การผลักคอมมิตและแท็ก) ให้เสร็จสิ้นด้วยคำสั่งเดียวแทนที่จะเป็นสองคำสั่ง

Git 2.4.1+ (Q2 2015) push.followTagsจะแนะนำตัวเลือก


ดูเหมือนว่าจะไม่ทำงานเมื่อคุณต้องการส่งไปยังรีโมตอื่น (แทนที่จะเป็นจุดเริ่มต้น) มันจะดันสาขาปัจจุบันของฉันเท่านั้น
Aloys

@Aloys ที่จะขึ้นอยู่กับเวอร์ชันคอมไพล์ของคุณและนโยบายการพุชเริ่มต้นปัจจุบัน: stackoverflow.com/questions/10002239/…
VonC

หากคุณต้องการผลักดันสาขาระยะไกลด้วยให้ใช้--mirror
BFar

18

คำตอบที่ยอมรับนั้นไม่ถูกต้องนักหรืออย่างน้อยก็ไม่ได้ผลสำหรับฉัน ฉันจำเป็นต้องระบุ repo ระยะไกลด้วยเช่น:

git push origin --all

การระบุรีโมตจำเป็นเฉพาะเมื่อไม่ได้ตั้งค่าอัปสตรีม
aross

จำเป็นต้องมีพื้นที่เก็บข้อมูลหากมีการเพิ่มรีโมทหลายตัวฉันเชื่อว่า ( $git remote -v)
michael

2
ในการตั้งค่าการติดตามระหว่างสาขาในพื้นที่และระยะไกลสามารถเพิ่มได้:git push -u origin --all
Drenai
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.