git で push したら fatal エラーが表示されてしまった件

スポンサーリンク

git で push したけど fatal エラーが出る

エンジニアではないので、がっつり git を使うということもないのですが。

ちょいちょいサイト構築をしたりするときは git を使ってファイルなどの管理を行っています。

wordpress の構築などでは function.php を触るときは重宝しているでしょうか。

まあ、個人の作業なのでシェアして作業しているわけでもないのですが。

そういう観点でいえば、バックアップ的な意味合いが多いでしょうか。

そんな git でちょっとハマってしまったことがあったので、自戒の念を込めて記事にします。

git の利用環境

個人的に構築している git の環境は、基本的には一人なのでローカル環境で完結したりしています。

ただ、バックアップを含めレンタルサーバーに push clone を行って、そこにバックアップ的にファイルを置いています。

もし、ローカル環境で何かあっても最新のデータをサーバーから pull してくれば OK という環境です。

また、出先で作業する機会もあるので、そうした場合の作業環境が変わった際の「繋ぎ」という利用もしています。

簡単に図にまとめるとこんな感じ。

今回トラブルが起きたのは、この「自宅のPC」と「VPS サーバーでの push」において。

基本的な設定は下記の記事で行っている内容です。

ServersMan@VPS でGit サーバーを構築してみる
Git 環境をもっと良くしよう 普段は、お仕事がらみで Git を使っています。 個人でももっと利用したいなあ。 と、しば...

新しいサイトを構築するので、新規にリポジトリを立てて、そこへローカルのファイルをプッシュしようとした時に発生。

原因は単純な「設定ミス」なのですが、勉強になりました。

エラーの内容

表示されたのは以下のようなエラー。

fatal: 'sample' does not appear to be a git repository
fatal: Could not read from remote repository.

「sample」は、VPS サーバー上に設置したディレクトリの名前です。

確認したこと その1

上記エラーでは、sample ディレクトリが「git リポジトリではないよ」と言われてしまっていますので、疑うのは

git --bare init --shared

をやっていない可能性ですね。

こちら忘れていました。

まずは、非常に単純なミス。

こちらあらためて、設定。これで問題なしと思ったんですが。

今度は、

fatal: Unable to create temporary file '/home/username/sample/./objects/pack/tmp_pack_XXXXXX': 許可がありません
error: pack-objects died of signal 13
error: failed to push some refs to 'ssh://000.000.0.00/home/username/sample/'

と、ディレクトリが作れない(権限がない)というエラー。

ssh で push するための remote 設定でちゃんとユーザー名を指定して VPS にはログインしているので、権限がないはずはないのだけど…。

上記の別記事でも紹介していますが、ssh を利用して push する際の設定の例は以下のような感じ。

git remote add origin ssh://hoge@xx.xx.xxx.xx/home/username/sample

アットマークの前、hoge がユーザー名になります。

もちろん、VPS 側にも同じユーザー名でログインしてディレクトリの作成を行っています。

なぜ、ディレクトリが作れないのか…?

原因はディレクトリファイルを作成するときに「sudo」で行っていました。

その結果、ディレクトリのユーザーが「管理者」になってしまっていました。

そりゃ、ディレクトリのユーザーが違うから書き込めないよなと。

ls -l

などで、ユーザーを確認するとすぐわかりますね。

と、原因がわかってから書くと非常に単純なミスなんですが、気づくまでは「んんっ?」となってしまいます。

最初は sudo で作ってるなんて全く思わないので、別の問題があるの?

なんて思ってしまいます。

ちなみに上記のエラーで検索すると、海外の情報が多かったので。

そちらにも「ユーザーがちがうんじゃないのー?」と、書いてあるんですが。

案外日本語での解説がすくなかったので。非常に単純なミスなんですけど、どなたかの気づきになれば…。

スポンサーリンク

シェアする

フォローする

スポンサーリンク