20211013のGitに関する記事は6件です。

2.2.gitインストール・設定

概要 GitHubの登録が完了したらローカル環境に反映するためGitコマンドをインストール・設定します。 インストール手順 1.確認 Gitがインストールされているか、また、Windows側のgitを参照していないかインストールディレクトリを確認します。。windowsマウント先のパスが表示されている場合はWSL側にインストールします。 git確認 $ which git /mnt/c/xxxx ※インストールされていない場合はなにも出力されません。 2.インストール 下記コマンドを実行します。 gitインストール $ sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y $ sudo apt install -y git 3.windows側のパスを無視する設定 Windows側の参照の参照よりもWSL側のgitコマンドを優先する為、bashrcを編集します。 ※本来は実行コマンドを混乱させないためにもWindows側はアンインストールするかWSLからWindowsコマンドの実行を禁止すべきだと思います。 bashrc編集 $ sudo vim /etc/profile.d/binpath.sh ---- 下記の通り編集 #!/bin/env bash export PATH=/usr/bin:${PATH} ---- $ sudo chmod 775 /etc/profile.d/binpath.sh $ source /etc/profile.d/binpath.sh 4.確認 git確認 $ git --version git version 2.25.1 $ which git /usr/bin/git ローカル初期設定 1.GitHubプロジェクト取得 まず、対象のプロジェクトを取得します。 1-1.GitHubサイトからURLをコピーします。 コードタブ⇒コードプルダウン⇒コピーボタン でコピーできます。 1-2.プロジェクトのクローン WSL端末で以下のコマンドを実行します。ここでは「/var/docker」以下にクローンします。 プロジェクトクローン $ mkdir -p /var/docker $ cd /var/docker/ $ git clone <コピーしたURL> Username for 'https://github.com': <GitHubユーザ> Password for 'https://masaki-nohara@github.com':<[2.1.GitHub登録]時に取得したToken> 2.メインユーザ以外のユーザを使用する場合 複数のプロジェクトを取り扱う場合、プロジェクトごとにユーザが違う場合があります。その場合はクローンしてきたディレクトリで使用するユーザを設定しておきます。 ローカルユーザ設定 $ cd /var/docker/<Gitプロジェクト名> $ git config --local user.name "<GitHubユーザ名>" $ git config --local user.email "<GitHubメールアドレス>" # Tokenを何度も入力しないようにするため認証情報を保存する設定をします $ git config credential.helper store $ git config --global color.ui auto 例) gitに登録しているプロジェクトmmmm、作業をするOSユーザdevelop、GitHubユーザ名piyopiyo、GitHubメールアドレスpiyo@poyo.co.jpの場合 ローカルユーザ設定例 $ sudo mkdir -p /var/docker/mmmm $ sudo chown develop:root /var/docker/mmmm $ cd /var/docker/mmmm $ git config --local user.name "piyopiyo" $ git config --local user.email "piyo@poyo.co.jp" $ git config credential.helper store $ git config --global color.ui auto #ユーザ情報確認 $ git config -l 3.新規ブランチを作成してチェックアウト 現在、ブランチはmasterブランチになっていると思います。masterブランチは通常リリース時のブランチですのでdevelopブランチを作成し、チェックアウトします。 細かいルールはGitHubフローに従ってください。 チェックアウト $ git checkout -b origin/develop # 初めてのチェックアウトの場合はpasswordの入力を求められますが、2度目以降の入力は省略されます。 ※または、下記の様に2コマンド実行しても同じです。 $ git branch origin/develop $ git checkout origin/develop これで環境を構築するための開発環境の構築が出来ました。次章からは実際にDockerを使用して環境構築のためのコードを書いていきます。 2.1.GitHub登録 < 前 2.2.gitインストール・設定 次 > 3.Docker in WSL環境構築
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

2.Git / GitHubによる環境ファイル管理

概略 ローカル開発環境を順次構築するにあたって環境の設定は全て設定ファイル、または、shell等のスクリプトプログラム(以下、環境構築用ファイル)となっていきます。本章ではそれらファイルを管理するためにGit / GitHubを利用する方法・手順を記載します。 現段階ではまだ環境構築用ファイルは作成していませんが、作成したファイルをすぐにバージョン管理する必要がある為、この段階でGitHubの登録を行い準備しておきます。 下記にWSLとGitHubの関係の俯瞰図を示します。 GitHubでは環境構築用ファイル以外にも通常の開発するプログラムソースも一緒に管理することによって開発者参入時の開発環境の構築や本番環境・検証環境の構築が驚くほど短期間で出来上がるようになります。仮に環境が壊れた場合の再構築もプログラムソースやデータも含めて数回のコマンド発行で可能となるでしょう。 使用した環境 Windows11 Pro Insider Preview Intel Core i7-8650U 実装RAM 16.0 GB 目次 アーキテクト技術者・構成管理者・リモート開発者のためのローカル開発環境構築ガイド 2. Git / GitHubによる環境ファイル管理 2.1. GitHub登録 2.2. gitインストール・設定 1.5. WSLでのsystemctl設定 < 前 2. Git / GitHubによる環境ファイル管理 次 > 2.1. GitHub登録
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git エディタをつかいこなす

Gitコミットしたけど抜け出すことができなくなったら ESCキーを押す。 :を入力する wqを入力して抜け出す。 モードを変える gitにてindex.htmlファイルを編集するとする。 vim index.html iでインサート(編集)モード
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Laravel / Git】LivewireでTodoリストを実装 ~ひとりチーム開発やってみた~

やりたいこと 今回のテーマは、以下の2つです。 LaravelのLivewireの使い方を、CRUD機能を持ったTodoリストを実装しながら解説する Todoリストの実装を、チーム開発を想定したGit flowの流れに沿ってソースコード管理する Gitの基本的な使い方やチーム開発の運用について学んだので、コミットしてプッシュしてプルリクエストを作成して…というような手順を実践してみたいなと思っていました。 せっかくならGitの練習のためだけのサンプルコードで行うより、実際に何か開発しながらチーム開発を想定してソースコード管理をやってみようということで、Todoリストの実装をGit flowに沿って管理してみます。 全体の流れ Todoリスト作成の手順 Laravelの新規プロジェクト作成 Livewireを使う準備 CREATE機能(新規作成)の実装 READ機能(一覧表示)の実装 UPDATE機能(更新)の実装 DELETE機能(削除)の実装 これらの各機能を実装する度に、下記「Gitでのチーム開発の手順」を繰り返し、ソースコード管理を行なっていきます。 Gitでのチーム開発の手順 ローカルリポジトリでdevelop(開発)ブランチに入る リモートリポジトリのdevelopブランチをローカルのdevelopブランチにプルして、ローカルのdevelopブランチを最新の状態にする。 ローカルでdevelopブランチからfeature(機能)ブランチを作り、そこで開発する。 変更点をローカルでcommitする。 作業が終わったら、ローカルのdevelopブランチを再度最新の状態にして、featureブランチに developブランチを取り込む。(rebase or merge) ローカルのfeatureブランチの内容を、リモートリポジトリの同名のブランチへpushする。  リモートのfeatureブランチからリモートのdevelopブランチへ、プルリクエストを発行する。 コードレビューをしてもらう。 コードレビューが通れば、レビュアーがリモートのdevelopブランチへ featureブランチをmergeする。 リモートのdevelopブランチをローカルのdevelopブランチへ取り込んで、 ローカルのdevelopブランチを最新の状態にする。 1. Laravelの新規プロジェクト作成 【開発】 新規プロジェクト作成 まずは以下のコマンドで新規プロジェクトを作成し、プロジェクトディレクトリに移動します。 Livewireを使うために、composerを使ってLivewireをインストールします。 $ laravel new livewire_todo $ cd livewire_todo Livewireをインストール $ composer require livewire/livewire 現在のディレクトリをVScodeで開く $ code .     これで、$ php artisan serve とすれば、localhost:8000でlaravelのwelcomeページを表示できるようになっています。 【Git】 バージョン管理を開始 Gitでの管理を始めます。 通常はプロジェクトに途中から参加することが多いかと思うので、その場合はリモートリポジトリの開発用ブランチ(develop)をローカルにクローンするところから始めることになります。 ですが今回は新しいプロジェクトのためGitHubにリモートリポジトリは無いので、あらかじめGitHubでリモートリポジトリを作成しておきます。 ローカルリポジトリ作成 GitHubで作成したリモートリポジトリのCode > Clone or downloadより、リポジトリのURLをコピーしておきます。 //ローカルでのGit管理開始・コミット作成 $ git init $ git add . $ git commit //リモートリポジトリとローカルリポジトリを紐づけ、originというショートカット名で登録 $ git remote add origin リモートリポジトリのURL SSHで接続する場合 pushする際、GitHubのユーザー名とパーソナルアクセストークンでの認証が必要となります。 GitHub > Settings > Developper settings > Personal access tokens > Generate new token 上記より、パーソナルアクセストークンを発行しておきます。 リモートリポジトリへプッシュ GitHub上で作成したリモートリポジトリには、まだ何のコードも保存されていないので、新規作成したLaravelのプロジェクトをmasterブランチにプッシュします。 $ git push origin master //実行すると、ユーザー名と上記のパーソナルアクセストークンを求められるので入力する。 リモートリポジトリにmasterブランチが作成されました。 Git flowでは原則、masterブランチはリリースに用い、開発はdevelopブランチで行います。 今回はdevelopブランチがまだ無いので、ローカルでdevelopブランチを作成してリモートに登録しておきます。 //developブランチを作成し、developブランチへ移動 $ git checkout -b develop //リモートにdevelopブランチを登録 $ git push -u origin develop GitHubで確認すると、画像のようにdevelopブランチが作成されています。 これで、Gitでバージョン管理をする準備が整いました。 開発用のブランチを切る コードに変更を加える際は、必ず一度developに戻ってからブランチを切り直します。 (つい何らかの変更をしてしまいdevelopに戻れなくなった場合は、git stashで作業を待避してからもう一度git checkout developします。) $ git checkout develop コードを変更する前に、ローカルのdevelopブランチを最新状態に更新するため、リモートのdevelopブランチをプルします。 //origin上のdevelopブランチを、現在チェックアウトしているブランチ(= develop)に取り込む $ git pull origin develop ローカルのdevelopブランチを最新状態にできたら、機能を実装するためのfeatureブランチを作ります。 featureブランチの命名規則はチームに寄りけりかと思いますが、今回はfeature/xxxに統一します。 //ブランチを作り、作ったブランチに移動する $ git checkout -b feature/start_livewire ブランチができているか、また作成したブランチに移動できているか確認します。 $ git branch * feature/start_livewire develop master これで、コードを編集するためのfeatureブランチが準備できました。 2. Livewireを使う準備 【開発】 Livewireを使う準備 ビューの親ファイルの作成 今回のTodoリスト作成において、作成する画面は、 一覧表示 新規作成 更新 の3つです。 この3つの共通部分となるビューの親ファイルを作成します。 $ mkdir resources/views/layouts $ touch resources/views/layouts/app.blade.php 作成したファイルを編集します。 resources/views/layouts/app.blade.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>livewire_todo</title> @livewireStyles </head> <body> @yield('content') @livewireScripts </body> </html> 【コードの解説】 livewireを使うため、以下の2点を記述します。 ①headタグ内に@livewireStyles ②bodyの閉じタグ直前に@livewireScripts @yield('content')の部分に、後ほど作成するlivewireコンポーネントを埋めることができます。 【Git】 コミット作成・プルリク作成・次のブランチを切る 作業が終わったら、ローカルのdevelopブランチを再度最新の状態にして、featureブランチに developブランチを取り込みます。 $ git checkout develop $ git pull origin develop //featureブランチへ戻る $ git checkout feature/start_livewire commitを作成します。 //今いるブランチと変更内容を確認 $ git status //commit作成 $ git add . $ git commit リモートへpushします。 $ git push origin feature/start_livewire プルリクエストを作成します。 Githubのリポジトリページを開く。 [Compare & pull request]を押す。 Reviewerを指定し、プルリクエストのメッセージを書く。(base:develop / compare:feature/start_livewire を選択する) [Create pull request]を押す。 File changedタブを開くと、ファイルの変更差分を見ることができます。 余計なデバッグコードやコメントが書かれたままになっていないか、コミットのもれや誤りが無いかなど、再度確認しておきます。 またFile changedの画面で各行にマウスカーソルを合わせると、"+"ボタンが出てくるので、これをクリックするとレビューを書くことができます。 レビューが通れば、featureブランチをdevelopブランチにmergeします。 次の機能を実装するためのfeatureブランチを切ります。 また一旦developブランチに戻り、ローカルを最新の状態に更新して、新しくfeatureブランチを切ります。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop $ git pull origin develop //新しいfeatureブランチを作成 $ git checkout -b feature/todo_create Switched to a new branch 'feature/todo_create' 3. CREATE機能(新規作成)の実装 【開発】 CREATE機能を実装するコンポーネントの作成 Livewireでは$ php artisan make:livewireコマンドでコンポーネントを作成します。 $ php artisan make:livewire todo-create COMPONENT CREATED ? CLASS: app/Http/Livewire/TodoCreate.php VIEW: resources/views/livewire/todo-create.blade.php コマンドを実行すると、ターミナルに表示されている2つのファイルが作成されます。 作成されたファイルのデフォルトの状態は、以下の通りです。 TodoCreate.php <?php namespace App\Http\Livewire; use Livewire\Component; class TodoCreate extends Component { public function render() { return view('livewire.todo-create'); } } Livewireのコンポーネントには、このようにrender関数があり、一緒に作成されたviewを返します。 todo-create.blade.php <div> {{-- Stop trying to control. --}} </div> 先述の通り、ビューの親ファイルであるresources/views/layouts/app.blade.phpにlivewireを使うための設定を記述し、@yield('content')を埋め込んであるので、この親ビューを継承する必要があります。 各ファイルを編集していきます。 todo-create.blade.php <div> <form wire:submit.prevent="save"> <div> <p>タイトル</p> <input type="text" wire:model="title"> </div> <div> <p>内容</p> <textarea wire:model="content"></textarea> </div> <button type="submit">保存</button> </form> </div> 【コードの解説】 Livewireでは、wire:イベント.修飾子でイベントをハンドリングすることができます。 ここではwire:submit.prevent="save"として、formのsubmitが押された時にコンポーネントのsaveメソッド(後述)を実行しています。 wire:modelを使用してデータの双方向バインディングを行うことができます。 Livewireはinput要素のイベントをリッスンし、イベントが発動すると、AJAXリクエストを送信して新しいデータでコンポーネントを再レンダリングします。 TodoCreate.php <?php namespace App\Http\Livewire; use Livewire\Component; use App\Models\Todo; class TodoCreate extends Component { public string $title =""; public string $content =""; protected array $rules = [ 'title' => 'required|string|max:255', 'content' => 'required|string|max:255', ]; public function render() { return view('livewire.todo-create') ->extends('layouts.app'); } public function save() { $this->validate(); Todo::create([ "title" => $this->title, "content" => $this->content ]); $this->reset(); } } 【コードの解説】 Livewireでは、protectedプロパティに配列の$rulesを定義することで、FormRequestのようにバリデーションを実装できます。 renderメソッドのビューを返す処理に->extends('layouts.app')として、livewireを使う準備を仕込んだ親ファイルを継承します。 todo-create.blade.phpのformにてwire:submit.prevent="save"と呼び出したsaveメソッドを記述しています。 入力された内容がバリデーションを通れば、データをDBに保存します。 Livewireではこのようにresetメソッドを使用して各プロパティを初期値に戻すことができます。 ルーティングの設定 web.php <?php use App\Http\Livewire\TodoCreate; Route::get('todos/create', TodoCreate::class)->name('todos.create');   localhost:8000/todos/createにアクセスすると、フォームが画面表示されます。 【Git】 コミット作成・プルリク作成・次のブランチを切る CREATE機能を実装したのでGitにあげます。 繰り返しになるので簡単に書いていきます。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop $ git pull origin develop //featureブランチへ戻る $ git checkout feature/todo_create //今いるブランチと変更内容を確認 $ git status //commit作成 $ git add . $ git commit //リモートへpush $ git push origin feature/todo_create プッシュできたら、GitHubにてプルリクエストを作成します。 File changedタブでコードを確認するのも忘れずに。 そして次の機能実装に入るため、featureブランチを切ります。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop $ git pull origin develop //新しいfeatureブランチを作成 $ git checkout -b feature/todo_read 4. READ機能(一覧表示)の実装 【開発】 READ機能を実装するコンポーネントの作成 次に一覧表示の機能を実装します。 まずは下記コマンドでコンポーネントを作成します。 $ php artisan make:livewire TodoList COMPONENT CREATED ? CLASS: app/Http/Livewire/TodoList.php VIEW: resources/views/livewire/todo-list.blade.php 作成された2つのファイルを編集します。 todo-list.blade.php <div> <ul> @foreach ($todos as $todo) <li> <a>{{ $todo->title }}</a> </li> @endforeach </ul> <a href="{{ route('todos.create') }}">作成</a> </div> 【コードの解説】 DBに保存されている全てのTodoを$todosで受け取り、foreach文でリスト表示しています。 先に作成した、Todo新規作成画面へのリンクを設置しています。 TodoList.php <?php namespace App\Http\Livewire; use Livewire\Component; use App\Models\Todo; class TodoList extends Component { public $todos; public function mount() { $this->todos = Todo::all(); } public function render() { return view('livewire.todo-list') ->extends('layouts.app'); } } 【コードの解説】 TodoList.phpファイルの中で、ビューへ受け渡す$todosを取得する必要があります。 取得にはライフサイクルフックのmountメソッドを利用します。Livewireでは、mountメソッドがコンストラクターの働きをします。 新規作成画面と同様に、レンダリングするviewのレイアウトファイルをextendsで指定しています。 ルーティングの設定 web.php use App\Http\Livewire\TodoList; Route::get('todos', TodoList::class)->name('todos'); localhost:8000/todosへアクセスすると、作成したTodoのタイトル一覧が表示されます。 【Git】 コミット作成・プルリク作成・次のブランチを切る READ機能を実装したのでGitにあげます。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop もしこの時、自分が作業をしている間に別の人がdevelopブランチを更新していたとすると、ローカルのdevelopブランチを最新の状態にした上でfeatureブランチに取り込む必要があります。 //ローカルのdevelopブランチを最新状態に更新 $ git pull origin develop //featureブランチに取り込む $ git checkout feature/todo_read $ git rebase develop featureブランチに、最新のdevelopブランチの内容を取り込んだ上で、commitを作成します。 //今いるブランチと変更内容を確認 $ git status //commit作成 $ git add . $ git commit //リモートへpush $ git push origin feature/todo_read プッシュできたら、GitHubにてプルリクエストを作成します。 File changedタブでコードを確認するのも忘れずに。 そして次の機能実装に入るため、featureブランチを切ります。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop $ git pull origin develop //新しいfeatureブランチを作成 $ git checkout -b feature/todo_update 5. UPDATE機能(更新)の実装 目標の確認 先に、今から作りたいUPDATE機能の完成形を確認しておきます。 一覧画面では、Todoのタイトルをクリックすると、更新画面に遷移できるようにします。 一覧画面から更新したいTodoをクリックすると、選択したTodoが表示され、内容を書き換えて更新することができます。 【開発】 UPDATE機能を実装するコンポーネントの作成 完成形を確認したところで、更新機能を実装していきます。 まずは下記コマンドで、更新機能用のコンポーネントを作成します。 $ php artisan make:livewire todo-update COMPONENT CREATED ? CLASS: app/Http/Livewire/TodoUpdate.php VIEW: resources/views/livewire/todo-update.blade.php 作成されたファイルを編集します。 todo-update.blade.php <div> <form wire:submit.prevent="update"> <div> <p>タイトル</p> <input type="text" wire:model="todo.title"> </div> <div> <p>内容</p> <textarea wire:model="todo.content"> </textarea> </div> <button type="submit">更新</button> </form> </div> 【コードの解説】 内容は、CREATEの画面と非常に似ています。 wire:submit.prevent="update"として、formのsubmitが押された時にコンポーネントのupdateメソッド(後述)を実行しています。 wire:modelを使用してデータのバインディングを行っています。 TodoUpdate.php <?php namespace App\Http\Livewire; use Livewire\Component; use App\Models\Todo; class TodoUpdate extends Component { public Todo $todo; protected array $rules = [ 'todo.title' => 'required|string|max:255', 'todo.content' => 'require|string|max:255', ]; public function render() { return view('livewire.todo-update') ->extends('layouts.app'); } public function update() { $this->validate(); $this->todo->update(); } } 【コードの解説】 publicプロパティの$todoを定義していますが、Livewireではこのようにpublicプロパティにタイプヒンティングを用いてEloquentを設定しておくと、Laravelの暗黙的結合のようにルートのパラメータとモデルのインスタンスを自動的に結合させることができます。 試しに$todoをデバッグしてみると、以下の通りです。 //一覧画面で、idが4のTodoタイトルをクリックした場合 local.DEBUG: {"id":4,"title":"Todo1","content":"Todo1\u306e\u5185\u5bb9","created_at":"2021-10-12T00:43:36.000000Z","updated_at":"2021-10-12T00:43:36.000000Z"} updateメソッドでは、バリデーション通ればDBの内容を書き換えています。 ルーティングの設定 ルートパラメーターにTodoのデータのidを受け取るようにします。 web.php use App\Http\Livewire\TodoUpdate; Route::get('todos/{todo}', TodoUpdate::class)->name('todos.update'); 一覧画面から更新画面へのリンクを設定します。 更新したいTodoのタイトルをクリックすると、そのTodoの更新画面へ遷移します。 その際データのidをパラメータとして渡します。 todo-list.blade.php <div> <ul> @foreach ($todos as $todo) <li> <a href="{{ route('todos.update',['todo'=>$todo->id]) }}"> {{ $todo->title }} </a> </li> @endforeach </ul> <a href="{{ route('todos.create') }}">作成</a> </div> これでlocalhost:8000/todosにアクセスすると、下記のようにTodoのタイトルをクリックできるようになっています。 更新したいTodoのタイトルをクリックすると、更新画面へ遷移します。 内容を書き換えて更新ボタンを押すと、リロードされることなくDBのデータが更新されます。 【Git】 コミット作成・プルリク作成・次のブランチを切る UPDATE機能を実装したのでGitにあげます。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop $ git pull origin develop //featureブランチへ戻る $ git checkout feature/todo_update //今いるブランチと変更内容を確認 $ git status //commit作成 $ git add . $ git commit //リモートへpush $ git push origin feature/todo_update プッシュできたら、GitHubにてプルリクエストを作成します。 File changedタブでコードを確認するのも忘れずに。 そして次の機能実装に入るため、featureブランチを切ります。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop $ git pull origin develop //新しいfeatureブランチを作成 $ git checkout -b feature/todo_delete 6. DELETE機能(削除)の実装 【開発】 一覧画面に削除ボタンを設置 現在、一覧画面には保存されているTodoのタイトルがリスト表示されています。 このタイトルの横に、削除ボタンを設置します。 今回は新しく作るコンポーネントはありません。既存ファイルを修正します。 todo-list.blade.php <div> <ul> @foreach ($todos as $todo) <li> <a href="{{ route('todos.update',['todo'=>$todo->id]) }}">{{ $todo->title }}</a> <button wire:click="delete({{ $todo->id }})">削除</button> </li> @endforeach </ul> <a href="{{ route('todos.create') }}">作成</a> </div> 削除ボタンのクリックイベントが発動すると、該当のデータのidを引数として、TodoListコンポーネントのdeleteメソッドが呼び出されます。 このdeleteメソッドをコンポーネントに追加します。 TodoList.php <?php namespace App\Http\Livewire; use Livewire\Component; use App\Models\Todo; class TodoList extends Component { public $todos; public function mount() { $this->todos = Todo::all(); } public function render() { return view('livewire.todo-list') ->extends('layouts.app'); } public function delete($id) //追記部分 { Todo::find($id)->delete(); $this->todos = Todo::all(); } } 削除ボタンを押したTodoをdeleteメソッドで削除します。 ただしこれだけでは、DBからはデータが消えるもののページ上には削除したTodoも表示され続けるため、再度DBに保存されているTodoを取得しています。 これで、削除ボタンを押せば該当のTodoが削除されるようになりました。 【Git】 コミット作成・プルリク作成・次のブランチを切る DELETE機能を実装したのでGitにあげます。 //ローカルのdevelopブランチを最新の状態に更新 $ git checkout develop $ git pull origin develop //featureブランチへ戻る $ git checkout feature/todo_delete //今いるブランチと変更内容を確認 $ git status //commit作成 $ git add . $ git commit //リモートへpush $ git push origin feature/todo_delete プッシュできたら、GitHubにてプルリクエストを作成します。 File changedタブでコードを確認するのも忘れずに。 CRUD機能が実装できたので、これで終わります。 参考記事
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Git] git-flowの使い方

前回、git-flowの概要と各ブランチの役割について紹介した。今回は、git-flowの使い方(コマンド)について紹介する。 git-flowの使い方 git-flowのコマンドは基本的には次の書式になる。 git flow <ブランチの種類> <コマンド> ■ ブランチの作成 新たなブランチを作成する場合 git flow <ブランチの種類> start <ブランチ名> ■ ブランチの共有 作成したブランチを共有リポジトリで共有する場合 git flow <ブランチの種類> publish <ブランチ名> ■ ブランチの取得 共有リポジトリからブランチを取得する場合 git flow <ブランチの種類> track <ブランチ名> ■ コミットの取得 共有リポジトリ上のコミットを取得する場合 git flow <ブランチの種類> pull origin ■ ブランチの終了 共有リポジトリからブランチを取得する場合 git flow <ブランチの種類> finish <ブランチ名> ブランチ終了後、終了したブランチは削除される。 まとめ 紹介したコマンドを表にまとめると以下となる。 コマンド 操作 start  ブランチの作成 publish  ブランチを共有リポジトリで共有 track  共有リポジトリからブランチを取得 pull  共有リポジトリ上のコミットを取得 finish  developかdevelopとmasterへマージして、ブランチを削除
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitの基本とコマンド

目次 基本 0.はじめに 1.ファイルの作成、編集を行う 2.ファイルの作成/変更/削除をgitのインデックスに追加する 3.変更結果をローカルリポジトリにコミットする 4.ローカルリポジトリをプッシュしてリモートリポジトリへ反映させる ブランチ 1.ブランチの作成、移動 2.ブランチにプッシュ 3.ブランチからプル 4.ブランチのマージ 0. はじめに Gitのコマンドを忘れてしまうのでメモ程度にまとめました。 「1」の作成は初回のみ行い、「2」から「4」を繰り返す。 1. ファイルの作成、編集を行う ローカルのPC上にローカルリポジトリを作成する。 今回は[sample]というディレクトリを作成する。 [mkdir]...新しくディレクトリを作成する。 [cd]...ディレクトリを移動する。 [git init]...新しくGitリポジトリを作成する。 >> mkdir sample cd sample git init 次に作成したファイル(今回はsample.html)をsampleフォルダに保存する。 2. ファイルの作成/変更/削除をgitのインデックスに追加する 「sample.html」のファイルをローカルリポジトリに追加する。 インデックス...リポジトリにコミットする準備をするために変更内容を一時的に保存する場所。 >> git add sample.html(←ファイル名) 3. 変更結果をローカルリポジトリにコミットする インデックスに追加されたファイルをコミットする。 >> git commit -m "add new file" リモートリポジトリに反映させる前に、リモートリポジトリの情報を追加する。 >> git remote add origin https://github.com//sample.git ←自分のリモートリポジトリに置き換える 4. ローカルリポジトリをプッシュしてリモートリポジトリへ反映させる ローカルリポジトリの変更を、Github上にあるリモートリポジトリに反映させる。 >> git push origin master ブランチの使用法 ブランチは履歴の流れを分岐して記録していくもの。 1. ブランチの作成、移動 現在のブランチの確認 >> git branch 作業中のブランチには「*」が付く。 「feature/step1」というブランチを作成する。 >> git branch feature/step1 [checkout]...ブランチの移動 >> git checkout feature/step1 git checkout -b feature/step1 ←ブランチの作成と移動をまとめて行う 2. ブランチにプッシュ 作成したファイル(今回はbranchsample.html)をgitに追加、コミットする。 >> git add branchsample.html git commit -m "feature/〇〇" リモートリポジトリの情報は登録済みなので、ブランチ名を指定して、プッシュする。 >> git push origin feature/step1 3. ブランチからプル 他の開発者がbranchsampleリポジトリで開発する場合にプルコマンドを使って行う。 リポジトリfeature/step1に移動する。 >> git checkout feature/step1 リモートブランチfeature/step1のコードを取得する。 >> git pull 4. ブランチのマージ 新機能をブランチを使って開発を行い、テストが完了したら、メインのブランチに取り込む。取り込む作業のことをマージという。 作業中のブランチをmasterに切り替える。 >> git checkout master feature/step1ブランチの作業結果をマージする。 >> git merge feature/step1 GitHubにプッシュする。 >> git push origin master
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む