Git menghapus upstream dari repositori lokal

94

Saya bekerja dengan aplikasi ruby ​​on rails dan saya mencoba menyinkronkan garpu. Perlu disebutkan bahwa saya juga menggunakan Mac. Saya melakukan tindakan berikut:

$ git remote -v

untuk melihat repositori lokal saya. Saya mengacau saat mencoba pergi upstream:

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

Kapan saya seharusnya menggunakan huruf besar Foo:

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

Pertanyaannya adalah bagaimana cara saya menghapus upstreamkarena setiap kali saya mencoba dan mengubah ini muncul kembali dengan membuat fatalkesalahan?

pengguna2603138
sumber

Jawaban:

150

Menggunakan git versi 1.7.9.5 tidak ada perintah "hapus" untuk remote. Gunakan "rm" sebagai gantinya.

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

atau, seperti disebutkan dalam jawaban sebelumnya, set-url berfungsi.

Saya tidak tahu kapan perintah berubah, tetapi Ubuntu 12.04 dikirimkan dengan 1.7.9.5.

bmacnaughton.dll
sumber
37

git remote manpage cukup mudah:

Menggunakan

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

atau cukup perbarui URL secara langsung:

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

atau jika Anda merasa nyaman dengannya, perbarui saja .git / config secara langsung - Anda mungkin dapat mengetahui apa yang perlu Anda ubah (kiri sebagai latihan untuk pembaca).

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

===

* Mengenai 'git remote rm' vs 'git remote remove' - ini berubah sekitar git 1.7.10.3 / 1.7.12 2 - lihat

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.
Bert F
sumber
1
Jawaban ini sepertinya perlu diperbarui. Dalam git 1.7.9, git remote remove upstreammenghasilkan 'error: Unknown subcommand: remove'
Michael Scheper
22
$ git remote remove <name>

yaitu.

$ git remote remove upstream

itu seharusnya berhasil

rodelm
sumber
11

Dalam git versi 2.14.3,

Anda dapat menghapus upstream menggunakan

git branch --unset-upstream

Perintah di atas juga akan menghapus cabang aliran pelacakan, oleh karena itu jika Anda ingin melakukan rebase dari repositori Anda harus menggunakannya

git rebase origin master 

dari pada git pull --rebase

Ashwin Balasundaram
sumber
1
Ini bekerja dengan sempurna untuk cabang saya dengan 2 hulu yang berbeda
Jason