リモートGitリポジトリのURI(URL)を変更するにはどうすればよいですか?


3895

ハードドライブ(ローカル)に複製したUSBキーにリポジトリ(元)があります。「オリジン」をNASに移動し、ここからのクローンのテストに成功しました。

「ローカル」の設定で「オリジン」のURIを変更して、USBキーからではなくNASからプルできるようになるかどうか知りたいのですが。

今のところ、2つの解決策があります。

  • すべてをusb-orignにプッシュし、それを再びNASにコピーします(nas-originへの新しいコミットによる多くの作業を意味します)。

  • 「ローカル」に新しいリモートを追加し、古いリモートを削除します(私は自分の履歴を壊すのではないかと心配しています)。


6
古いバージョンのgit(1.5.6.5)でこれを行う必要があり、set-urlオプションが存在しませんでした。不要なリモートを削除し、同じ名前の新しいリモートを追加するだけで問題なく動作し、履歴が正常に維持されました。
HotN、2014

私の場合、私の許可を確認する必要があります。2つのプライベートgitリポジトリがあり、この2番目のアカウントはその新しいリポジトリの管理者で、最初の1つはデフォルトのユーザーアカウントです。最初に許可を与える必要があります
saber tabatabaee yazdi

回答:


6332

あなたはできる

git remote set-url origin new.git.url/here

(を参照git help remote)または.git/config、URLを編集して変更するだけです。非常に愚かなことをしない限り、履歴を失う危険はありません(そして、心配な場合は、リポジトリのコピーを作成してください。リポジトリ履歴ですから。)


29
別のシェルユーザーがいる場合は、新しいURLの先頭にgitユーザーを指定することもできます。例:myself@git://new.url.here
sobi3ch

13
新しい起点の場所のマスターアップストリームブランチを次のように設定することもできますgit branch -u origin/master。これによりgit pushgit push origin master毎回行う必要がなくなります。
kelorek 2013

32
@kelorekまたはあなただけのことができますgit push -u origin master初めて:)
ホッブズ

26
またgit remote set-url --push origin git://...、オリジン...(プッシュ)URLを設定する必要もありました。
jpillora 2014年

3
複数のブランチの場合、を使用git push -u --allして、すべてのブランチを一度に新しいURLにプッシュできます(ではなくgit push -u origin master
Ben

902
git remote -v
# View existing remotes
# origin  https://github.com/user/repo.git (fetch)
# origin  https://github.com/user/repo.git (push)

git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL

git remote -v
# Verify new remote URL
# origin  https://github.com/user/repo2.git (fetch)
# origin  https://github.com/user/repo2.git (push)

リモートのURLを変更する


100

Git Origin Serverのホストを変更する

から:http : //pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/

うまくいけば、これはあなたがする必要があるものではありません。いくつかのgitプロジェクトとのコラボレーションに使用していたサーバーのドメイン名が期限切れになっていました。つまり、ローカルリポジトリを移行して同期を取り戻す方法を見つける必要がありました。

更新:最近のgitバージョンで簡単な方法があることを指摘してくれた@mawolfに感謝(2010年2月以降):

git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git

詳細については、manページを参照してください。

古いバージョンを使用している場合は、これを試してください:

注意点として、これは同じサーバーであり、名前が異なるだけで機能します。

新しいホスト名がnewhost.comで、古いホスト名がだったとするoldhost.comと、変更は非常に簡単です。

.git/config作業ディレクトリのファイルを編集します。次のように表示されます。

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git

に変更oldhost.comnewhost.com、ファイルを保存すれば完了です。

私の限られたテスト(git pull origin; git push origin; gitx)から、すべてが正しいようです。そして、はい、私はgit内部をいじるのが悪い形であることを知っています。


悪い形?たぶん。しかし、もしあなた誰かがする必要があると著者が予想しなかった何かをする必要があるなら、時には内部をいじることが必要です。しかし、あなたがそれを間違えた場合、あなたは結果を受け入れる用意がある必要があります。 Backup your local repository _before_ messing with git internals.
ジェシーチザム

56
git remote set-url origin git://new.location

(または、を開いて.git/config探し[remote "origin"]url =行を編集します。

リモコンを調べて、動作を確認できます。

git remote -v
# origin  git://new.location (fetch)
# origin  git://new.location (push)

次にプッシュするときは、新しい上流のブランチを指定する必要があります。例:

git push -u origin master

参照:GitHub:リモートのURLの変更


.git / configを編集して新しいオリジンを設定できませんでした。URLで指定されたgitリポジトリはgitリポジトリではないという。オリジンを削除して再作成したら、すべてが順調でした。ただし、問題の解決策としてgit remote set-urlを調べていませんでした。
タコグラブバス

git push -uコマンドで完全な回答を提供するための+1 。たぶん他の人には自明でしたが、私には向いていませんでした。
testphreak

37

リモートURLの切り替え

ターミナルを開きます。

最初のステップ: -現在の作業ディレクトリをローカルプロジェクトに変更します。

2番目のステップ: -変更するリモートの名前を取得するために、既存のリモートをリストします。

git remote -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

git remote set-urlコマンドを使用して、リモートのURLをHTTPSからSSHに変更します。

3番目のステップ: - git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

4番目のステップ: -リモートURLが変更されたことを確認します。

git remote -v 新しいリモートURLを確認する

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)

新しいオリジンを追加する前に、古いオリジンを削除する必要がありますか?
スレッジ

プロジェクトから何も削除しませんでした。上記の手順を実行するだけで
うまくいき

27
  1. gitbash git remote rm originのコマンドを使用してoriginを削除します
  2. そしてgitbashを使用して新しいOriginを追加します git remote add origin(プロジェクトリポジトリからビットバケットにHTTP URLをコピーします)完了

git remote rm origingitが古いオリジンについての詳細を覚えているので、これは本当に役立つ答えです。
mato

上記git remote rm originは複数のリモートの問題を解決します:リモートURLを設定できなかった問題。remote.origin.url has multiple values fatal: could not set 'remote.origin.url'
ビットおよび


19

レポターミナルから次のコマンドを記述します。

git remote set-url origin git@github.com:<username>/<repo>.git

リモートでURLを変更する方法の詳細については、このリンクを参照してください。


1
リンクは役に立ちました
ANP

16

ローカルのクローンを作成すると、自動的に構成されます、

複製されるリモートURL。

あなたはそれを使ってそれをチェックすることができます git remote -v

変更したい場合は

git remote set-url origin https://github.io/my_repo.git

ここに、

起源-あなたのブランチ

既存のブランチを上書きしたい場合は、それを使用できます。既存のブランチを上書きします...

git remote remove url
and 
git remote add origin url

あなたのために...


複数のリモートを追加したのでgit remote rm origin、関連するすべてのURLを削除するにはコマンドが必要でした。その後、追加コマンドが機能しました。
ビットおよび

14

gitリモート接続を確認するには:

git remote -v

次に、ローカルリポジトリをリモートgitに設定します。

git remote set-url origin https://NewRepoLink.git

それをアップストリームにするか、次のコードをプッシュして使用します。

git push --set-upstream origin master -f


1
私は押していましたが、それでもgithubは私の新しいブランチを表示しませんでした。それが最後--set-upstreamに機能しました。
OoDeLally

11

これには多くの方法があります。

コンソール

git remote set-url origin [Here new url] 

リポジトリがある場所で開いていることを確認してください。

構成

.git / configに配置されます(リポジトリと同じフォルダー)

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = [Here new url]  <------------------------------------
...

TortoiseGit

ステップ1-設定を開く

ステップ2-URLを変更する

次に、URLを編集します。

SourceTree

  1. ツールバーの[設定]ボタンをクリックして、[リポジトリ設定]ウィンドウを開きます。

  2. [追加]をクリックして、リモートリポジトリパスをリポジトリに追加します。「リモートの詳細」ウィンドウが開きます。

  3. リモートパスの名前を入力します。

  4. リモートリポジトリのURL /パスを入力します

  5. リモートリポジトリのホスティングサービスのユーザー名を入力します。

  6. [OK]をクリックして、リモートパスを追加します。

  7. [リポジトリ設定]ウィンドウに戻り、[OK]をクリックします。新しいリモートパスをリポジトリに追加する必要があります。

  8. 追加済みのリモートパスを編集する必要がある場合は、[編集]ボタンをクリックします。リモートパスの詳細(URL /パス/ホストタイプ)を編集できる[リモートの詳細]ウィンドウが表示されます。

  9. リモートリポジトリのパスを削除するには、[削除]ボタンをクリックします

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ref。サポート


11

リモートgit URIをgit@github.comではなくに変更しますhttps://github.com

git remote set-url origin git@github.com:<username>/<repo>.git

例:

git remote set-url origin git@github.com:Chetabahana/my_repo_name.git

ssh-agentを使用すると、git push自動的に実行できるという利点があります。

#!/bin/bash

# Check ssh connection
ssh-add -l &>/dev/null
[[ "$?" == 2 ]] && eval `ssh-agent`
ssh-add -l &>/dev/null
[[ "$?" == 1 ]] && expect $HOME/.ssh/agent

# Send git commands to push
git add . && git commit -m "your commit" && git push -u origin master

スクリプトファイル$HOME/.ssh/agentを配置して、以下のようにexpectssh-add使用て実行できるようにします。

#!/usr/bin/expect -f
set HOME $env(HOME)
spawn ssh-add $HOME/.ssh/id_rsa
expect "Enter passphrase for $HOME/.ssh/id_rsa:"
send "<my_passphrase>\n";
expect "Identity added: $HOME/.ssh/id_rsa ($HOME/.ssh/id_rsa)"
interact

10

Git Bashで、次のコマンドを入力します。

git remote set-url origin https://NewRepoLink.git

資格情報を入力してください

できた



9
$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ git config master.remote origin
$ git config master.merge refs/heads/master

8
10年前の質問に21の回答を追加して回答を追加するときは、回答の説明を含め、回答の質問の新しい側面を指摘することが非常に重要です。一連のコマンドである回答を使用して、それぞれが何をしているか、および可能であれば、それぞれの効果を元に戻す方法を説明するのに役立ちます。元に戻すことは、誰かが最初のいくつかの手順を実行できるが、その後の手順でエラーが発生した場合に重要です。
Jason Aller

@JasonAller私はこれはかなり自明だと思います、そしてそれはここでの最良の答えです、他の人は冗談です。
Oliver Dixon

7

TortoiseGitを使用している場合は、次の手順に従ってください。

  1. ローカルのチェックアウトフォルダに移動し、右クリックして移動します TortoiseGit -> Settings
  2. 左側のペインで選択します Git -> Remote
  3. 右側のペインで、 origin
  4. 次に、URLテキストボックスの値を、新しいリモートリポジトリがある場所に変更します。

ブランチとローカルコミットはすべてそのまま残り、以前と同じように作業を続けることができます。


6

ここに画像の説明を入力してください

トラブルシューティング :

リモートを変更しようとすると、これらのエラーが発生する場合があります。そのようなリモート '[name]'はありません

このエラーは、変更しようとしたリモートが存在しないことを意味します。

git remote set-url sofake https://github.com/octocat/Spoon-Knife fatal:そのようなリモート「sofake」はありません

リモート名を正しく入力したことを確認してください。

リファレンス:https : //help.github.com/articles/changing-a-remote-s-url/


3

リモートアップストリームを変更するには: git remote set-url origin <url>


するために、追加もっとアップストリームを: git remote add newplace <url>

あなたはどこに動作するかを選択できますので、 git push origin <branch>またはgit push newplace <branch>


1
私は見つけることができなかった他は、複数のアップストリームでの作業の言及...
アンダーソンCossul

2

設定ファイルを編集して、URLを変更できます。プロジェクトのルートに移動します。

nano .git/config

次に、URLフィールドを編集して、新しいURLを設定します。変更を保存します。コマンドを使用して変更を確認できます。

git remote -v 

1

Visual Studio 2019からこの変更を行いたい人のために

チームエクスプローラーを開く(Ctrl + M)

ホーム->設定

Git->リポジトリ設定

リモコン->編集

ここに画像の説明を入力してください


1

リポジトリがプライベートの場合

  1. スタートメニューからコントロールパネルを開く
  2. ユーザーアカウントを選択
  3. 左側のメニューで[資格情報の管理]を選択します
  4. GitまたはGitHubに関連する資格情報を削除します

参照


1

特権を確認してください

私の場合、ユーザー名を確認する必要があります

私は2つまたは3つのリポジトリを持ち、別々の資格情報を持っています。

問題は私の許可です私は2つのプライベートgitサーバーとリポジトリを持っています

この2番目のアカウントはその新しいリポジトリの管理者で、最初のアカウントはデフォルトのユーザーアカウントであり、最初に許可を与える必要があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.