Memo

メモ > 技術 > 開発: Git > リポジトリを譲渡する

■リポジトリを譲渡する
まずはリポジトリの所有者が作業する リポジトリの「Repository settings」の「リポジトリの詳細」のページ右上にある「Manage Repository」から「Transfer Repository」を選択する 譲渡先のワークスペースを指定する 対象ユーザに承認メールが飛び、許可するとリポジトリが譲渡される。その際に移動先のプロジェクトも選択する Sourcetreeなどを使用している場合、リポジトリの参照先を変更する 例えば taro から hanako に test リポジトリを譲渡した場合、参照すべきリポジトリのURLが https://taro@bitbucket.org/taro/test.githttps://taro@bitbucket.org/hanako/test.git に変化するので、Sourcetreeなどのリポジトリ設定もそのように変更する リポジトリの譲渡などでリポジトリのURLが変更された場合、デプロイ時の参照先も変更する必要がある リポジトリの所有権を譲渡する - アトラシアン製品ドキュメント https://ja.confluence.atlassian.com/bitbucket/transfer-repository-ownership-289964397.html 【git】リポジトリの移行時などでremote urlを変更する - KDE BLOG https://kde.hateblo.jp/entry/2018/02/18/200459 以下は実際にリポジトリの譲渡を試したときのメモ ■前提 以下にリポジトリを作成してあるものとする https://bitbucket.org/taro/test ローカルのSourcetreeで参照できるものとする 権限を与えた他のユーザからも、Sourcetreeで参照できるものとする サーバ上でPULLできるよう設定してものとする 以下は作業例
$ sudo su -s /bin/bash - apache $ cat /var/www/.ssh/id_rsa.pub ... CLONEできるようにするため、この内容をリポジトリに登録。id_rsa.pub は作成済みのものとする $ mkdir /var/www/vhosts/test $ cd /var/www/vhosts/test $ git clone git@bitbucket.org:taro/test.git /var/www/vhosts/test $ git pull
■譲渡 譲渡元でリポジトリの譲渡作業を行う 「Repository settings → Manage repository」から、譲渡先のIDを入力する 譲渡先でメールを受け取ると、以下の内容が書かれているので許可する (「以下のグループは」の下には何も書かれていなかった)
リポジトリの所有権の移転 太郎 山田が、リポジトリtaro/testの所有権をあなたに譲ろうとしています。 あなたが承認すれば、存在する全てのユーザーとグループがリボークされたリポジトリにアクセスできます。 また、以下のグループはリポジトリにアクセスできます: [許可する] [拒否する]
許可すると「リポジトリは譲渡されました。」と表示される この時点で、旧URLにはアクセスできなくなる 譲渡先では以下のURLでアクセスできるが、譲渡元は権限が無いのでアクセスできない 譲渡先で「ユーザーとグループのアクセス権」を与えれば、もちろんアクセスできるようになる https://bitbucket.org/hanako/test ■譲渡後の設定(Sourcetree) SourcetreeでPULLすると、リポジトリが見つからない(移動した)ため以下のエラーになる
remote: Repository taro/test not found
Sourcetreeで「設定 → origin → 編集 → URL/パス」を以下のように変更して「OK」すると、PULLできるようになる https://taro@bitbucket.org/taro/test.githttps://taro@bitbucket.org/hanako/test.git ■譲渡後の設定(サーバ) サーバ上でPULLすると、リポジトリが見つからない(移動した)ため以下のエラーになる
$ git pull repository does not exist. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
以下の手順でリポジトリの参照先を変更すると、PULLできるようになる
$ git remote -v origin git@bitbucket.org:taro/test.git (fetch) origin git@bitbucket.org:taro/test.git (push) $ git remote set-url origin git@bitbucket.org:hanako/test.git $ git remote -v origin git@bitbucket.org:hanako/test.git (fetch) origin git@bitbucket.org:hanako/test.git (push) $ git pull Already up-to-date.

Advertisement