20210427のGitに関する記事は5件です。

Railsチュートリアル(第1章)でHerokuへのデプロイに躓いた

概要 Railsチュートリアルにて 1.5.2  Herokuにデプロイする(1) ここの前段階までを終わらせていることが前提 Railsチュートリアルを始めて、Herokuへのデプロイに躓いた(最後のpushコマンドエラー)ので2周目でも同じことをしないために備忘録としての簡単なメモ。 今まではDockerなどを使いローカルでサーバーを立ち上げなどは行なってきたが本番環境にデプロイするのは初めてのこと。 公式ページに載っているエラーとは別物だったが落ち着き払って、エラー文を読み解くことで何に頼ることもなく解決ができた。(初心者からしたらとても大きな一歩) 実際のエラー $ git push heroku master Enumerating objects: 9858, done. Counting objects: 100% (9858/9858), done. Delta compression using up to 8 threads Compressing objects: 100% (6779/6779), done. Writing objects: 100% (9858/9858), 31.74 MiB | 7.80 MiB/s, done. Total 9858 (delta 2483), reused 9848 (delta 2479), pack-reused 0 remote: Compressing source files... done. remote: Building source: remote: remote: -----> Building on the Heroku-20 stack remote: -----> Determining which buildpack to use for this app remote: ! Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used. remote: Detected buildpacks: Ruby,Node.js remote: See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order remote: -----> Ruby app detected remote: -----> Installing bundler 2.2.16 remote: -----> Removing BUNDLED WITH version in the Gemfile.lock remote: -----> Compiling Ruby/Rails remote: -----> Using Ruby version: ruby-2.6.6 remote: -----> Installing dependencies using bundler 2.2.16 remote: Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4 remote: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform remote: is x86_64-linux. Add the current platform to the lockfile with `bundle lock remote: --add-platform x86_64-linux` and try again. remote: Bundler Output: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform remote: is x86_64-linux. Add the current platform to the lockfile with `bundle lock remote: --add-platform x86_64-linux` and try again. remote: remote: ! remote: ! Failed to install gems via Bundler. remote: ! remote: ! Push rejected, failed to compile Ruby app. remote: remote: ! Push failed remote: ! remote: ! ## Warning - The same version of this code has already been built: 1d2acef39bb4522b0be81c5c574ce9b5d1c8d2c7 remote: ! remote: ! We have detected that you have triggered a build from source code with version 1d2acef39bb4522b0be81c5c574ce9b5d1c8d2c7 remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch. remote: ! remote: ! If you are developing on a branch and deploying via git you must run: remote: ! remote: ! git push heroku <branchname>:main remote: ! remote: ! This article goes into details on the behavior: remote: ! https://devcenter.heroku.com/articles/duplicate-build-version remote: remote: Verifying deploy... remote: remote: ! Push rejected to peaceful-shelf-41437. remote: To https://git.heroku.com/peaceful-shelf-41437.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/peaceful-shelf-41437.git' 今回の場合、注目するべき点はここで remote: Bundler Output: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform remote: is x86_64-linux. Add the current platform to the lockfile with `bundle lock remote: --add-platform x86_64-linux` and try again. 雑に超ざっくり訳すと、「あなたがお使いのバンドラーがサポートしているプラットフォームは"x86_64-darwin-20"のみだが、現在のこのローカル環境では"x86_64-linux"が使われている。なので"x86_64-linux"でも動作できるようにlockfileに記述してもう一度トライしてくれ。」と、ご丁寧に解決するためのコマンドまで教えてくれていた。 解決編 (1) ・エラー文での指示通りにコマンドを実行 $ bundle lock --add-platform x86_64-linux Gemfile.lockを覗いてみると 105 nokogiri (1.11.3-x86_64-darwin)↲ 106 racc (~> 1.4)↲ 107 nokogiri (1.11.3-x86_64-linux)↲ 108 racc (~> 1.4)↲ 元から記述されてた(であろう)darwinの下に先ほど追加したlinuxがちゃんと記述されてる! ・Gemfileを書き換えたのでRailsチュートリアルでの教えに倣って再度以下のコマンドを実行 $ bundle install --without production ・コミットコマンドを実行 $ git commit -a -m "Modify the Gemfile.lock" ・再度デプロイにチャレンジ $ git push heroku master . . remote: Verifying deploy... done. 解決編 (2) 失礼、その2はありません。以上でおしまいです。 (やりたかっただけ) おまけ 無事にデプロイが完了すると、生成されたURLをコピーしてブラウザで開くことが出来る。以下が実際の表示ページ renderメソッドエラー起こしてた。 追記 上記は単なるrenderメソッドの記述ミスなどによるエラーだと思っていたが、デプロイ時に生成されるURLが違うためであった。 デプロイ成功時に最下部に表示される、https: //git.heroku... から始まるURLではなく、 ログの最後の方に出てくる、https://アプリ名.herokuapp で始まるURLが正しいものであった。 完
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Git] 日付以降のコミットログだけを表示

概要 特定の日付以降のコミットのログを表示したい場合の方法をメモします。 Gitのバージョン $ git --version git version 2.24.3 (Apple Git-128) 方法 $ git log --after='2021-04-23 00:00:00'
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Git で公開してはいけないものを公開してしまい、リモートリポジトリを消した話

はじめに プログラミング初学者のため、自分の理解できている範囲内で言語化しています。 何か間違っている情報や改善点などありましたら、コメントいただけますと幸いです。?‍♂️ 何が起きたのか 簡単にまとめると、ブランチきって作業していた際に、公開してはいけない情報を記述したまま、 コミット → プルリクエスト → マージ → ブランチ削除 まで気づかずにしてしまっていた。 原因 圧倒的gitの知識不足 学んだこと 公開したくない情報を記述したまま、コミットしてはいけない。 ブランチは削除しても見れてしまうため、実質消せていない。 *最悪コミット・プルリクエストまでは簡単に戻せるっぽいが、マージからブランチまで削除してしまう消すことはできない 間違えてコミット・プルリクエストをしてしまったときに、解決する方法はたくさんあるので 調べる? 特にこの方が丁寧にまとめてくださってる、本当に助かります?‍♂️ URL:https://qiita.com/muran001/items/dea2bbbaea1260098051#%E3%82%84%E3%82%89%E3%81%8B%E3%81%97%EF%BC%93%E4%BD%99%E8%A8%88%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%97%E3%81%9F%E3%81%91%E3%81%A9%E3%82%84%E3%81%A3%E3%81%B1ignore%E3%81%97%E3%81%9F%E3%81%84%E6%99%82 試したこと 結論、私の場合はマージしてブランチの削除まで進んでしまっていたので、消すことができずリモートリポジトリごと削除した、、、? やったこと → ターミナル. % git reset --soft コミットID で公開したくない情報を記述したコミットまで戻し、履歴を上書きした これでリモートリポジトリの<>codeでは表示されなくなったので 一見これで成功したように見えたが、リモートリポジトリのPull requestsのclosedに削除したブランチが残っていて、ここで変更履歴を見ることができた。 ここで、ブランチは完全に消すことができないことを知り、リモートリポジトリを削除することにしました。 リモートリポジトリの削除 リモートの設定の一番したの方に削除するためのボタンがあり、そこで削除する。 削除した後は、ローカルの方でもリモートの情報を削除する必要がある ターミナル. xxxxxnoMacBook-Pro testapp % git remote        ---リモートの情報があるか確認 origin                            ---originという情報が残っている xxxxxnoMacBook-Pro testapp % git remote rm origin  ---originの削除 xxxxxnoMacBook-Pro testapp % git remote        ---リモートの情報があるか確認 xxxxxnoMacBook-Pro testapp %               ---ない場合は何も出ない これでローカルでのリモートリポジトリの削除は完了 最後に、またアプリケーションをgitに追加して完了
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Git ローカルリポジトリに紐付いているリモートリポジトリ名を変更する

目的 ローカルリポジトリに紐付いているリモートリポジトリ名を変更する方法をまとめる 方法 ローカルリポジトリ内で下記コマンドを実行することでリモートリポジトリ名を変更する事ができる。 $ git remote rename 現在の名前 変更後の名前 リモートリポジトリ名をoriginからorigin_02に変えたい時は下記のようになる。 $ git remote rename 'origin' 'origin_02'
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【コピペ】AWS Cloud9+Docker ComposeでLaravel環境を構築その参

現在のDocker環境は、docker-compose.yml達とLaravelを同梱している。 その為、Gitにプッシュしようと思ったら、丸ごと行ってしまう。 Laravelだけ、リポジトリ管理する事にした。 マシンスペック Mac mini 2018 macOS Catalina(10.15.x) Intel Core-i7 3.2GHz 6コア メモリ 32GB SSD 512GB Docker環境 Nginx 最新版 PHP(PHP-FPM)7.2.x MySQL 5.7.x Composer 1.x Laravel 5.6.x やること Laravelだけ、リポジトリ管理 前提 【コピペ】AWS Cloud9+Docker ComposeでLaravel環境を構築その弐で環境構築済み Laravelだけ、Gitリポジトリ管理する 現在の構成 ディレクトリ構成は、こんな感じ。 [docker] ← クローンして来た |-docker-compose.yml |-... |-src |-laravel ← コイツだけリポジトリ管理したい! |-app |-... .gitがdockerディレクトリ直下にあるので、プッシュすると丸ごと(dockerディレクトリごと)行っちゃう。 $ pwd /home/ec2-user/environment/docker $ ls -al ・・・ drwxrwxr-x 8 ec2-user ec2-user 198 Apr 20 10:34 .git ・・・ docker/src/laravelだけプッシュしたい。 リポジトリの向き先を変える 早い話、.gitがdockerではなく、docker/src/laravelにあれば良い。 やる事 Git初期設定 リポジトリを用意 docker/.gitを削除 docker/src/laravelをバックアップ(以下、旧Laravel) docker/srcにリポジトリをクローン(以下、新Laravel) 旧Laravelを新Laravelにコピー 旧Laravelを削除 新Laravelをプッシュ Git初期設定 未設定なら、やっておく。 $ git config --global user.name "GitHubユーザー名" $ git config --global user.email GitHubメールアドレス リポジトリを用意 空っぽなリポジトリだと、クローンした時にYou appear to have cloned an empty repository.って警告が表示されるので、おっ!?ってなる。 READMEだけ追加しておけば気にならなくて良い。 docker/.gitを削除 $ pwd /home/ec2-user/environment/docker $ rm -fdR .git docker/src/laravelをバックアップ(以下、旧Laravel) $ pwd /home/ec2-user/environment/docker $ cd src $ ls laravel $ mv laravel laravel_bak $ ls laravel_bak docker/srcにリポジトリをクローン(以下、新Laravel) $ git clone <上記でコピーしたリポジトリURL> laravel 例)git clone https://github.com/bobtabo/cloud9-laravel.git laravel Cloning into 'laravel'... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done. $ ls laravel laravel_bak 旧Laravelを新Laravelにコピー $ ls -l drwxrwxr-x 3 ec2-user ec2-user 35 Apr 21 17:30 laravel drwxrwxr-x 13 ec2-user ec2-user 4096 Apr 19 17:40 laravel_bak $ cp -pR laravel_bak/. laravel $ ls -l drwxrwxr-x 14 ec2-user ec2-user 4096 Apr 19 17:40 laravel drwxrwxr-x 13 ec2-user ec2-user 4096 Apr 19 17:40 laravel_bak 旧Laravelを削除 $ ls laravel laravel_bak $ rm -fdR laravel_bak $ ls laravel 新Laravelをプッシュ ブラウザをリロードすれば、プッシュされている。 Cloud9を開き直す時 Cloud9を開き直したら、ディレクトリ選択し直す。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む