5161

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

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

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

  • すべてを usb-origin にプッシュし、再度 NAS にコピーします (nas-origin への新しいコミットにより多くの作業が必要になることを意味します)。

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

4

31 に答える 31

8329

あなたはできる

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

( を参照) または、そこで URLgit help remoteを編集および変更できます。.git/config非常にばかげたことをしない限り、履歴を失う危険はありません (また、心配であれば、リポジトリのコピーを作成してください。リポジトリ履歴です)。

于 2010-03-12T12:55:50.670 に答える
1379
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 を変更する

于 2013-10-10T14:43:44.250 に答える
122

Git オリジン サーバーのホストを変更する

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

うまくいけば、これはあなたがする必要があるものではありません. 私がいくつかの git プロジェクトで共同作業するために使用していたサーバーは、ドメイン名の有効期限が切れていました。これは、ローカル リポジトリを移行して同期を取り戻す方法を見つけることを意味していました。

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

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 の内部をいじるのが悪い形式であることはわかっています。

于 2011-02-15T02:52:36.157 に答える
67
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 を変更する

于 2015-04-26T23:13:21.763 に答える
33
  1. gitbash git remote rm originでコマンドを使用してオリジンを削除する
  2. そして、gitbash git remote add originを使用して新しい Origin を追加します (プロジェクト リポジトリから HTTP URL をビット バケットにコピーします)。
于 2016-06-24T11:10:54.347 に答える
16

リモート git URIgit@github.comhttps://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

以下のように、 expectを使用し$HOME/.ssh/agentて実行できるようにスクリプト ファイルを配置します。ssh-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
于 2019-05-25T11:54:35.073 に答える
14

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


アップストリームをさらに追加するには: git remote add newplace <url>

git push origin <branch>働く場所や働く場所を選べる git push newplace <branch>

于 2020-02-28T13:43:12.253 に答える
9

別の方法として、「古い」オリジンの名前を変更し (以下の例では単純に名前を付けていますold-origin)、新しいオリジンを追加します。時々古いオリジンにプッシュできるようにしたい場合は、これが望ましいアプローチかもしれません。

git remote rename origin old-origin
git remote add origin git@new-git-server.com>:<username>/<projectname>.git

ローカル状態を新しいオリジンにプッシュする必要がある場合:

git push -u origin --all
git push -u origin --tags
于 2020-09-20T12:25:45.273 に答える