Git ลบต้นน้ำออกจากที่เก็บในเครื่อง


94

ฉันกำลังทำงานกับแอปพลิเคชั่นทับทิมบนรางและฉันกำลังพยายามซิงค์ส้อม เป็นมูลค่าการกล่าวขวัญว่าฉันใช้ Mac ด้วย ฉันมุ่งมั่นที่จะดำเนินการต่อไปนี้:

$ git remote -v

เพื่อรับมุมมองของที่เก็บในเครื่องของฉัน ฉันสับสนเมื่อพยายามจะไปupstream:

$ git remote add upstream https://github.com/foo/repo.git

เมื่อฉันควรใช้ตัวพิมพ์ใหญ่ Foo:

$ git remote add upstream https://github.com/Foo/repos.git

คำถามคือฉันจะลบออกได้อย่างไรupstreamเพราะทุกครั้งที่ฉันพยายามและเปลี่ยนแปลงสิ่งนี้จะกลับมาพร้อมกับการสร้างfatalข้อผิดพลาด

คำตอบ:


150

การใช้ git เวอร์ชัน 1.7.9.5 ไม่มีคำสั่ง "remove" สำหรับรีโมต ใช้ "rm" แทน

$ git remote rm upstream
$ git remote add upstream https://github.com/Foo/repos.git

หรือตามที่ระบุไว้ในคำตอบก่อนหน้า set-url ใช้งานได้

ฉันไม่รู้ว่าคำสั่งเปลี่ยนไปเมื่อไหร่ แต่ Ubuntu 12.04 มาพร้อมกับ 1.7.9.5


37

git remote manpage ค่อนข้างตรงไปตรงมา:

ใช้

Older (backwards-compatible) syntax:
$ git remote rm upstream
Newer syntax for newer git versions: (* see below)
$ git remote remove upstream

Then do:    
$ git remote add upstream https://github.com/Foo/repos.git

หรือเพียงแค่อัปเดต URL โดยตรง:

$ git remote set-url upstream https://github.com/Foo/repos.git

หรือถ้าคุณพอใจกับมันเพียงแค่อัปเดต. git / config โดยตรง - คุณอาจจะรู้ได้ว่าคุณต้องเปลี่ยนอะไร (ปล่อยให้เป็นแบบฝึกหัดสำหรับผู้อ่าน)

...
[remote "upstream"]
    fetch = +refs/heads/*:refs/remotes/upstream/*
    url = https://github.com/foo/repos.git
...

===

* เกี่ยวกับ 'git remote rm' กับ 'git remote remove' - สิ่งนี้เปลี่ยนไปรอบ ๆ git 1.7.10.3 / 1.7.12 2 - ดู

https://code.google.com/p/git-core/source/detail?spec=svne17dba8fe15028425acd6a4ebebf1b8e9377d3c6&r=e17dba8fe15028425acd6a4ebebf1b8e9377d3c6

Log message

remote: prefer subcommand name 'remove' to 'rm'

All remote subcommands are spelled out words except 'rm'. 'rm', being a
popular UNIX command name, may mislead users that there are also 'ls' or
'mv'. Use 'remove' to fit with the rest of subcommands.

'rm' is still supported and used in the test suite. It's just not
widely advertised.

1
คำตอบนี้ดูเหมือนจะต้องมีการอัปเดต ใน git 1.7.9 git remote remove upstreamสร้าง 'error: Unknown subcommand: remove'
Michael Scheper


11

ใน git เวอร์ชัน 2.14.3

คุณสามารถลบต้นน้ำโดยใช้ไฟล์

git branch --unset-upstream

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

git rebase origin master 

แทน git pull --rebase


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