Git xóa ngược dòng khỏi kho lưu trữ cục bộ


94

Tôi đang làm việc với một ứng dụng ruby ​​on rails và tôi đang cố gắng đồng bộ một ngã ba. Điều đáng nói là tôi cũng đang sử dụng máy Mac. Tôi đã thực hiện hành động sau:

$ git remote -v

để xem kho lưu trữ cục bộ của tôi. Tôi đã nhầm lẫn khi cố gắng đi upstream:

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

Khi tôi nên viết hoa Foo:

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

Câu hỏi đặt ra là làm cách nào để loại bỏ upstreamvì mỗi lần tôi thử và thay đổi nó, nó lại tạo ra fatallỗi?

Câu trả lời:


150

Sử dụng git phiên bản 1.7.9.5 không có lệnh "loại bỏ" cho điều khiển từ xa. Sử dụng "rm" để thay thế.

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

hoặc, như đã lưu ý trong câu trả lời trước, set-url hoạt động.

Tôi không biết khi nào lệnh thay đổi, nhưng Ubuntu 12.04 xuất xưởng với 1.7.9.5.


37

git remote manpage khá đơn giản:

Sử dụng

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

hoặc chỉ cần cập nhật trực tiếp URL:

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

hoặc nếu bạn cảm thấy thoải mái với nó, chỉ cần cập nhật trực tiếp .git / config - bạn có thể tìm ra những gì bạn cần thay đổi (còn lại như bài tập cho người đọc).

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

===

* Về 'git remote rm' so với 'git remote remove' - điều này đã thay đổi xung quanh git 1.7.10.3 / 1.7.12 2 - xem

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
Câu trả lời này dường như yêu cầu cập nhật. Trong git 1.7.9, git remote remove upstreamtạo ra 'lỗi: Unknown subcommand: remove'
Michael Scheper

22
$ git remote remove <name>

I E.

$ git remote remove upstream

Điều đó sẽ làm các trick


10

Trong phiên bản git 2.14.3,

Bạn có thể xóa ngược dòng bằng

git branch --unset-upstream

Lệnh trên cũng sẽ xóa nhánh luồng theo dõi, do đó nếu bạn muốn rebase từ kho lưu trữ mà bạn đã sử dụng

git rebase origin master 

thay vì git pull --rebase


1
Điều này hoạt động hoàn hảo cho chi nhánh của tôi với 2 hướng ngược dòng khác nhau
Jason
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.