SourceTreeをアップデート、もしくはNEW PCに最新版をインストールして新規設定して、既存ディスクにあるリポジトリをAddしてみたらエラーになってリポジトリからデータが取得できない事態が発生した。
こんな感じのエラーが表示される。
—————————
エラーが発生しました
—————————‘git status’ がコード 128 で終了しました: fatal: unsafe repository (‘D:/works/clientName/projectName/domainName’ is owned by someone else)
To add an exception for this directory, call:
git config –global –add safe.directory D:/works/clientName/projectName/domainName
(D:\works/clientName/projectName/domainName)
これは、Gitのバージョンが上がったことで、Gitの設定にsafe.directoryとして作業ディレクトリを登録しなければならないということらしい。
対象法は、SourceTreeの右上にある「ターミナル」をクリックしてターミナルを起動。
ターミナルに下記コマンドを入力するとGitのGlobal設定に設定が書き込まれる。
$ git config --global --add safe.directory D:/works/clientName/projectName/domainName
既存の設定値を確認するには、
$ git config --global -l
user.name=xxx@xxx.jp
user.email=xxx@xxx.jp
difftool.sourcetree.cmd='' "$LOCAL" "$REMOTE"
mergetool.sourcetree.cmd=''
mergetool.sourcetree.trustexitcode=true
safe.directory=D:/works/clientName/projectName/domainName
Windows側の実ファイルの場所は、
C:\Users\ユーザー名\.gitconfig
[user]
name = xxx@xxx.jp
email = xxx@xxx.jp
[difftool "sourcetree"]
cmd = '' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = "'' "
trustExitCode = true
[safe]
directory = D:/works/clientName/projectName/domainName
実は、ファイルを直接編集しても、ターミナルからコマンド登録してもどちらも結果は同じ。
次は、pullしようとしてもエラー認証エラーになって取得できない。
古いバージョンのSourceTreeでは、キー 受け入れ直しを選択するとSourceTreeごと落ちる始末。
こいつの対処法は、こうだ。
Windowsのコマンドプロンプトから
C:\Users\ユーザー名\AppData\Local\SourceTree\app-3.4.11\tools\putty\plink.exe 新しいリポジトリのホスト名
を実行することで、キーが更新されるらしい。恐らくレジストリで管理しているのかも知れない。
散々ハマって、4時間くらい試行錯誤して突き止めてやった。
めでたしめでたしだ。
Add comment