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

2020年11月12日

テクノロジー

eyecatch 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コマンドで統一したほうがいいかもしれませんね。 久しぶりに、サーバー管理をしっかりしなければ!!!と考えさせられた、エラーでした。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ