20
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

git config --global --add safe.directory '...' が出たとき

Last updated at Posted at 2022-06-13

はじめに

USBメモリ上のディレクトリに対してリモートリポジトリ設定を行おうとすると,中々うまくいきませんでした.
かなり手こずってしまったので,私の場合の解決方法を残しておきます.

環境

  • Windows 10
  • USB3.0 メモリ

エラー内容

USBのファイル名は F: で対象ディレクトリは workspace です.

コマンドプロンプト
F:\workspace>echo "# my-repo" >> README.md

F:\workspace>git init
Reinitialized existing Git repository in F:/workspace/.git/

F:\workspace>git add README.md
fatal: unsafe repository ('F:/workspace' is owned by someone else)
To add an exception for this directory, call:

        git config --global --add safe.directory 'F:/workspace'

# 以下略

解決方法

safe.directory として,該当のディレクトリを登録してあげます.
しかし,エラーに出ている通りに以下のコマンドをコマンドプロンプトでタイプしてもうまくいきません.

間違い
git config --global --add safe.directory 'F:/workspace'

'F:/workspace' の部分を F:/workspace に書き換えて,

修正版
git config --global --add safe.directory F:/workspace

とするとうまくいきました.
ディレクトリ名を囲うクオーテーションを消しました.

注意点1

エラーが提示した 'F:/workspace' のまま実行すると,safe.directory として登録されるディレクトリ名にもクオーテーションが含まれてしまいます.

以下のコマンドで,safe.directoryを確認できます.

コマンドプロンプト
git config --global -l | find "safe.directory"

出力は以下のようになります.

コマンドプロンプト
# 正しいコマンドの場合
safe.directory=F:/workspace

# クオーテーションありで実行した場合
safe.directory='F:/workspace'

注意点2

Windows環境での実行ではありますが,ディレクトリ名の区切りは バックスラッシュ(\) ではなく,スラッシュ(/) を用います.
なので,F:\workspace のようなディレクトリ名は不正です.

正しくは,F:/workspace のようなスラッシュ区切りです.

おわりに

こんな単純な設定周りの問題だったのに,割と解決までに時間を要してしまった(エラー通りに素直に実行していたため)ので,同じ轍を踏む方が少しでも減ることを祈っています.

それでは:wave:

参考記事

20
7
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?