Git видалення вище за течією з локального сховища


94

Я працюю з додатком ruby ​​on rails і намагаюся синхронізувати вилку. Варто згадати, що я також на 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 немає команди "видалити" для віддаленого. Замість цього використовуйте "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 досить проста:

Використовуйте

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видає 'помилка: Невідомий підкоманду: видалити'
Майкл Шепер


11

У версії git 2.14.3,

Ви можете видалити вище за течією за допомогою

git branch --unset-upstream

Вищевказана команда також видалить гілку потоку відстеження, отже, якщо ви хочете перебазувати дані із сховища, яке ви використовуєте

git rebase origin master 

замість git pull --rebase


1
Це чудово працювало для моєї філії з двома різними
Джейсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.