gitでpullすると表示されたエラーメッセージ

2020年11月12日

テクノロジー

t f B! P L
gitがスタンダードなので、仕方なくgitを使っている、下駄です。 この間、gitでpull操作をしたら、次のようなエラーが表示された。 $ git pull origin master > Pulling without specifying how to reconcile divergent branches is discouraged.You can squelch this message by running one of the following commands sometime before your next pull: git config pull.rebase false # merge (the default strategy) git config pull.rebase true # rebase git config pull.ff only # fast-forward only You can replace "git config" with "git config --global" to set a default preference for all repositories. You can also pass --rebase, --no-rebase, or --ff-only on the command line to override the configured default per invocation. なんじゃこりゃ!!! たしか、最近このgitの対象ディレクトリは、少し手作業でいじった記憶があった。 また、ブランチが死んでしまったのか?と思ったが、実はそうではなく、簡単に解決したので、その原因と解決法を書き残しておきます。

原因

このエラーは、正常にpullができないと言っているんだけれど、原因は.gitフォルダのいくつかのファイルやフォルダの、アクセス権限がrootになっていることが分かった。 どうやら、前回のpullをした時に、rootでログインして、そのままgit pullコマンドを実行してしまったことが根源のようだ。 おかげで、.git内のそれぞれの構成ファイルがユーザー権限からroot権限に切り替わってしまい、 次回、ユーザー権限で実行しようとしたら、アクセス権限がなかったため、ファイルが無い状態のように見えてしまった結果、このエラーが表示された状態でした。

解決

解決は、一旦root権限になり、chownで、プロジェクトディレクトリ全体(.gitディレクトリも含む)の権限を、ユーザーに切り替えてあげることでエラー解消しました。 $ sudo chown -R user:user /var/www/html/service

対策

たま〜にこういう事あるんだよね〜。 なんて思っていましたが、今回は、自分の開発環境で起きたエラーだったんですが、これが、仕事などでの本番サービスであれば、下手すると、データやファイルの上書きができなくなったり、正常にアクセスができなくなってしまう状態になると、サービス障害に繋がりかねません。 sshログインする時に、rootログインしているサーバーを、ユーザーアクセスに切り替えるべきですね。 セキュリティ的にもそうしたほうがいいし、root操作は、sudoコマンドで統一したほうがいいかもしれませんね。 久しぶりに、サーバー管理をしっかりしなければ!!!と考えさせられた、エラーでした。

このブログを検索

プロフィール

自分の写真
プログラミングとサーバーを心の底から楽しむクリエーターです。 経営者であり、開発者でもありますが、得意としているのは、アイデア創出で、出来高は無限大です。

ブログ アーカイブ

QooQ