2025年03月11日(火)

今日は、まず、OM0002からSourceTreeをアンインストールして、Gitをインストールして、SourceTreeをインストールしました。SourceTreeのインストールでGitのチェックは出ずに、既に入っているという認識をしてくれました。OM0002のSourceTreeからOM0002に入れたプロジェクトは認識できました。僕のマシンのSourceTreeからも認識できました。しかし、Visual Studio 2022でクローンすると、「Git failed with a fatal error. detected dubious ownership in repository at ...」の様なエラーが出て、「git config --global --add safe.directory ...」をやってみて、といった様な案内が出ます。昨日は、ここでGitがSourceTree内部のもので、このコマンドを受け付けませんでした。今日はGitをインストールしてからやったので、コマンドを受け付けます。しかし、駄目でした。directoryの後にシングルクオーテーションは要らないとか、「\」ではなくて「/」だとか、書いていたので直してもダメでした。OM0003には僕のアカウントがあったので、OM0003でもやってみたのですが、駄目でした。解決したのですが、サーバ側で直すのではなくクライアント側で直すというのが結論でした。

それには、クライアントにGit for Windows もインストールする必要があります。エラーが出たら「git config --global --add safe.directory ...」をクライアントのマシンで実行すれば良いです。エラーメッセージ、コピー出来ないかと思いきや、最前面の状態でCtrl+Cするとコピー出来ます。Git for Windowsをインストールすると、Git Bashというツールもインストールされるので、僕はこれでやりました。(下でエラーが出て出来ないと書きましたが、てっきりGit CMDでやったものと思い込んでいました。Git Bashでやると大丈夫です。)

今回役立ったコマンドです。

safe.directoryに指定されているものを全部見る。(これは、Git CMDで有効です。)
git config --global -l | find "safe.directory"

safe.directoryに指定されているものを全削除する。
git config --global --unset-all safe.directory

指定されているものを見る場合で他の情報も見れますが、こういうのもあります。
git config --global -l

ようやく出来て嬉しいです。しかし、時間がかかり過ぎました。そう言えば、僕のマシンSourceTreeを先にインストールしてあります。SourceTreeは内部のGitを使っている筈です。まずい事が起こる前に一度アンインストールして、インストールしようと思います。

出来たと思ったのは一度だけでした。なぜ出来たのか不思議です。(Git CMDを使ってしまったからです。)

色々回り道をして、Git Bashを使えばよいという事が判りました。ようやく上手く行きました。これは現時点での見解ですが、Visual Studio はGitとしてMinGitというものを使っています。Git for Windows で使われているのは普通のGitです。Git BashはMinGitの方も面倒を見てくれますが、Git CMDは普通のGitしか面倒を見てくれないのではないかという風に思っています。いや、違うかもしれません。Git CMDだとパスにシングルクオーテーションかダブルクォーテーションを付けてしまい、それがまずいだけかも知れません。試してみたら、Git CMDだとシングルクオーテーションが付きました。これがまずいと思われます。Git Bashでは付きません。

今日は結局、Gitと格闘して一日が終わってしまいました。しかし達成感があります。明日はサーバ側にゴミを残してあるので、それを奇麗にしても動くかやってみます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA