概要
GitHubなどのリモートリポジトリにクローンしておらず、ローカルでのみバックアップしていたGitリポジトリのリストアを試みると、アクセス権の問題でリポジトリを利用できないというケースに遭遇しました。その解決方法の忘備録です。
発生環境
- 開発作業用HDD上のローカルのGitリポジトリをディレクトリごとコピーして、バックアップHDD上にローカルのバックアップを作成。
- 新HDDにWindows 10、Source Treeをインストール。
- バックアップHDDをつないで、バックアップHDD→新HDDにディレクトリごとコピーして、ローカルのGitリポジトリのファイルをリストア。
- Source TreeでClone。保存先パスにはリストアした新HDD上のローカルGitリポジトリを指定。この時点ではSource TreeはGitリポジトリを認識している。
- Source Treeで以下のエラーを示すダイアログが表示され、リポジトリを取り込めない。
'git log'がコード 128 で終了しました:fatal:detected dubious ownership in repository at 'リポジトリのパス' 'リポジトリのパス' is owned by: 'Gitリポジトリに記録されたオーナー識別子' but the current user is: '指定したディレクトリのオーナー識別子' To add an exception for this directory, call: git config --global --add safe.directory リポジトリのパス (リポジトリのパス)
調査
git config --global --add safe.directory
リポジトリのパス を試してみたのですが、効果なし。解決した手順
- Gitリポジトリのディレクトリの親ディレクトリを右クリック。
- コンテキストメニューの「プロパティ」を選択。
- プロパティウィンドウの「セキュリティ」タブを選択。
- 「詳細設定」ボタンを押下。
- セキュリティの詳細設定ダイアログが表示されるので、「所有者」を確認しておく。
- 同ダイアログの下部の「継承の無効化」を押下。
- 同ダイアログ上部の「変更」を押下。
- ユーザまたはグループの選択ダイアログの下部の「選択するオブジェクトを~」に、自分のWindowsのアカウント名を入力。
- 「OK」を押下。
- セキュリティの詳細設定ダイアログに戻るので、「所有者」が入力したアカウントに変わっていることを確認。
- Source TreeでGitリポジトリをAddする。
- Gitリポジトリを格納するためのディレクトリを適当に作る。
- 作成したディレクトリを右クリックし、上記手順2~6を実施。
- 「OK」を押下してダイアログ2つを閉じる。
- Gitリポジトリのディレクトリを作成したディレクトリに、移動ではなくコピーする。
- Source TreeでコピーしたGitリポジトリをAddする。