git เพิ่ม remote remote


139

ฉันต้องการเพิ่มรีโมตและสาขาของรีโมตนั้น

ฉันทำgit remote add <newname> <url>ไปแล้วgit fetch --allแต่git branch -aไม่ได้แสดงสาขาของรีโมท . git / config ของฉันกำลังแสดงรีโมตที่เพิ่ม

มีใครช่วยฉันออกได้ไหม


2
จะเกิดอะไรขึ้นเมื่อคุณgit fetch remote branch:branch && git co branch?
Samy Dindane

คำตอบ:


280

ฉันไม่แน่ใจว่าคุณกำลังพยายามสร้างสาขาระยะไกลจากสาขาท้องถิ่นหรือในทางกลับกันดังนั้นฉันจึงสรุปสถานการณ์ทั้งสองรวมทั้งให้ข้อมูลเกี่ยวกับการรวมสาขาระยะไกลและสาขาท้องถิ่น

การสร้างรีโมตที่เรียกว่า "github":

git remote add github git://github.com/jdoe/coolapp.git
git fetch github

รายการสาขาระยะไกลทั้งหมด:

git branch -r
  github/gh-pages
  github/master
  github/next
  github/pu

สร้างสาขาท้องถิ่นใหม่ (ทดสอบ) จากรีโมตกิ่งก้านสาขา (pu):

git branch test github/pu
git checkout test

รวมการเปลี่ยนแปลงจากสาขาระยะไกลของ github (pu) กับสาขาท้องถิ่น (ทดสอบ):

git fetch github
git checkout test
git merge github/pu

อัปเดตสาขาระยะไกลของ github (pu) จากสาขาท้องถิ่น (ทดสอบ):

git push github test:pu

การสร้างสาขาใหม่บนรีโมตใช้ไวยากรณ์เดียวกันกับการอัพเดตสาขารีโมต ตัวอย่างเช่นสร้าง remote branch ใหม่ (เบต้า) บน github จาก local branch (test):

git push github test:beta

ลบ remote remote (pu) จาก github:

git push github :pu

มีวิธีการสร้างสาขาท้องถิ่นโดยไม่ระบุชื่อเช่นนั้นโดยอัตโนมัติใช้ชื่อเดียวกันกับสาขาระยะไกลหรือไม่
Dubslow

@ git checkout --track github/puดูสโลว์ดูที่นี่
Hinrich

25

คุณสามารถตรวจสอบว่าคุณได้รับการตั้งค่าระยะไกลของคุณถูกต้องและมีสิทธิ์ที่เหมาะสมกับ

git ls-remote origin

ถ้าคุณเรียกว่า "ต้นกำเนิด" ระยะไกลของคุณ หากคุณได้รับข้อผิดพลาดคุณอาจไม่ได้ตั้งค่าความปลอดภัยให้ถูกต้องเช่นการอัพโหลดกุญแจสาธารณะของคุณไปยัง GitHub เป็นต้น หากสิ่งต่าง ๆ ถูกติดตั้งอย่างถูกต้องคุณจะได้รับรายการของการอ้างอิงระยะไกล ตอนนี้

git fetch origin

จะป้องกันปัญหาอื่น ๆ เช่นสายเคเบิลเครือข่ายที่ไม่ได้เสียบ

เมื่อคุณทำเสร็จแล้วคุณจะได้สาขาที่คุณต้องการให้คำสั่งด้านบนแสดงรายการ

git checkout some-branch

สิ่งนี้จะสร้างสาขาในพื้นที่ที่มีชื่อเดียวกันกับสาขาระยะไกลและตรวจสอบ


6

ฉันทดสอบสิ่งที่ @Samy Dindane แนะนำในความคิดเห็นของ OP

ฉันเชื่อว่ามันใช้งานได้ลอง

git fetch <remote_name> <remote_branch>:<local_branch>
git checkout <local_branch>

นี่คือตัวอย่างสำหรับพื้นที่เก็บข้อมูลระยะไกลที่สมมติขึ้นซึ่งตั้งชื่อfooด้วยสาขาชื่อbarที่ฉันสร้างสาขาท้องถิ่นbarติดตามระยะไกล:

git fetch foo bar:bar
git checkout bar

5

นี่เป็นกระบวนการที่สมบูรณ์ในการสร้าง repo ในพื้นที่และผลักดันการเปลี่ยนแปลงไปยังสาขาระยะไกลใหม่

  1. การสร้างที่เก็บท้องถิ่น: -

    ผู้ใช้เริ่มแรกอาจสร้างที่เก็บ git ในตัว

    $ git init : - สิ่งนี้จะทำให้โฟลเดอร์ท้องถิ่นเป็นที่เก็บ Git

  2. เชื่อมโยงสาขาระยะไกล : -

    ตอนนี้ความท้าทายคือการเชื่อมโยงที่เก็บ git ท้องถิ่นกับสาขาต้นแบบระยะไกล

    $ git remote add RepoName RepoURL

    การใช้งาน: git remote เพิ่ม []

  3. ทดสอบรีโมต

    $ git remote show ---> แสดงชื่อระยะไกล

    $ git remote -v ---> แสดงสาขาระยะไกล

  4. กดที่รีโมท

    $git add . ----> เพิ่มไฟล์และโฟลเดอร์ทั้งหมดเป็น git staged '

    $git commit -m "Your Commit Message" - - -> ยืนยันข้อความ

    $git push - - - -> ผลักดันการเปลี่ยนแปลงไปยังต้นน้ำ


นี่เป็นเพียงคำแนะนำสำหรับกรณีทั่วไปของการใช้คอมไพล์ ฉันไม่เห็นสิ่งใดในคำตอบนี้เฉพาะกับคำถามที่ถูกถาม
Hack-R

2

หากสาขาระยะไกลมีอยู่แล้วคุณสามารถ (อาจ) หนีไป ..

git checkout branch_name

และคอมไพล์จะตั้งค่าโดยอัตโนมัติเพื่อติดตามสาขาระยะไกลที่มีชื่อเดียวกันกับที่มา

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