GitHubにcommitするときのコメントの注意点

コメント内容について

「~を変更した」ではなく、「何を追加したか」「どういうことができるようになったか」などをかく(どこを変更したかは見ればわかるため)

commit頻度について

複数行に渡るコメントを書く必要があるというのは、commitの単位がでかすぎるということ
だいたい一行くらいでコメントが書けるよう、頻繁に分けてcommitすること

20170801(Tue)

今日したこと

ShoppingSite

cssページをpush
最近のまとめ

最近したこと

HTML/CSS入門教室(CSSの基礎知識)

・簡単にまとめられているけど今までなんでそうなのかわからなかったことなどについて詳しく書かれていてよかった
・半日くらいで終わる量なのでありがたい
・細かいことは自分で調べて補う形になるが最初に自分で色々作るのにはためになる
・イラストが多いので疲れない
・楽しくて良い本だった

cssでページのレイアウトをいじる
詰まっていたところ(Sessionオブジェクトに複数値を格納する)を相談して解決
<button type="submit" name="productName" value="りんご">購入</button>
<button type="submit" name="productName" value="バナナ">購入</button>


            request.setCharacterEncoding("UTF-8");
            String productName = request.getParameter("productName");
            
            HttpSession session = request.getSession();
            Product product = new Product();
            product.setName(productName);
            session.setAttribute("Product", product);

nameを共通化して、選択された方のvalueをセットするようにした
現状ではどちらか一つしか選択できないので、今後複数選択を可能にしたい

今後変更する箇所

cssを使いページをもっと見やすくする
複数商品の購入を可能にする
アカウントの登録などを可能にする
データベースと商品やアカウントの情報をやり取りできるようにする

20170714(Fri)

今日したこと

ShoppingSite

購入結果ロジック作成
購入結果画面作成
GitHubにPush

詰まっているところ

Sessionオブジェクトに配列を格納する
今後のページのイメージ(追加するもの、追加の仕方)

課題

的確な検索ワードで検索をする(欲しい情報をすぐ見つける)
学んだことを応用して使う

20170711(Tue)

今日したこと

ShoppingSite

カートロジック
買い物かごページ
eclipseデバッグ

詰まったところ
・値渡しのロジック?
カートロジックはsessionを使ったけど
フォワード先で怒られてしまう
デバッグを使いこなして原因を探すことを勧められた

 

Product product = (Product)session.getAttribute("Product");

ここで、"Product"はStringだったから型キャストできませんって怒られてて、

HttpSession session = request.getSession();
Product product = new Product();
product.setName(ringo);
session.setAttribute("Product", product);

これしたらちゃんとできるようになった

助けてもらったところだから微妙や〜

言葉で説明できるようになったらいいかな

1回目のplan完成まではもうちょっとだ

 

20170710(Mon)

今日したこと

ShoppingSite
Eclipseでしていたpushをターミナル作業に変更する
進行状況をgithubにpush

画像の指定→絶対パスを調べる

shoppingカートへ選んだ商品を追加する

< form >で飛ばす(ロジックを作るためJavaに飛ばしてからjsp)

サーブレットは、WebブラウザからURLや、Webページの中のリンクにURLを指定して呼び出す。

そのURLは、Eclipseのプロジェクト名とサーブレットの@WebServletというアノテーションと関連付く。
URLで指定して呼び出す場合

http://サーバホスト名:ポート番号/Eclipseプロジェクト名/@WebServletアノテーション
  ※ポート番号は省略可。省略した場合はポート番号は80となる。
Webページの中のリンクから呼び出す場合

<a href="Eclipseプロジェクト名/@WebServletアノテーション">Click Here</a>
フォームから呼び出す場合

<form action="Eclipseプロジェクト名/@WebServletアノテーション" method=post>

ターミナルからGitHubEclipseのプロジェクトをpush

・前回、リモートからクローンしたリポジトリeclipseで開く
静的プロジェクトができるので、プロジェクトのプロパティからプロジェクト・ファセットでJavaと動的Webプロジェクトにチェックを入れると動的Webプロジェクトになる
・色々作っていく
・ターミナルに行って、リモートと連携してる?ディレクトリに移動
・中を見ると

WebContent  build   memo1.txt   src

ってなってたので、WebContent src の二つをaddする

add
git add WebContent
git add src

次にコメントをつけてコミット(コメントって何にしたらいいのかわからない)

commit
git commit -m "20170710"

最後にリモートにpush

push
git push リモート名 ブランチ名

これでeclipseからチーム・プロジェクト共有ってしないで
ターミナルで全てできるようになる

まだできていないところ

カートのロジック
eclipsemysqlの連携
DBを使用するユーザーとパスの承認
とりあえず明日はここまで

20170707(Fri)

今日したこと

ShoppingSite
ログインロジックビュー
メイン
ログアウトロジックビュー
進行状況をgithubにpush
商品一覧ページの作成
MYSQLEclipseの連携(文字化けするけどブラウザに表示されるとこまでは進んだ)

質問

githubの現在の状況がよくわからない(前回クローンしてからローカルとリモートの関係性がめちゃくちゃでわからない)
eclipseからのpushをターミナルからと言われたけど、現在ターミナルからpushしたことのあるものはvimで作ったテキストのみでよくわからない
・クローンしたあと、eclipseに取り込んだ内容をブラウザで試せない(動的webプロジェクトではなくなってしまっている。ただ外部JARを足せばいいだけかもしれないけど)
・商品画像をネットから拾ってローカルに保存してからリンクを貼ったけど、実際amazonとかのページはどこから画像を持ってくるのか(後画像でないのなんで)

GitHub GitItで学んだものメモ

Git

オープンソースソフトウェア
変更を記録してくれる
バージョン管理システムとして知られる
ターミナルでいつでも使うことができる

Gitの設定

現在使用しているGitのversionを確認
 git --version
変更が誰によるものか
 git config --global user.name "ほにゃらら"
Eメールアドレス
 git config --global user.email "メールアドレス"

Repositories

プロジェクトのこと
自分のプロジェクトをGitに伝えることで、そのフォルダの中のすべての変更を追跡してもらえる(バージョン管理システム)
以下例

新しいフォルダを作る
mkdir フォルダ名
作ったフォルダへ移動
cd hello-world
フォルダをGitリポジトリとして初期化
git init
現在の状態
git status

ファイルの追加/保存/確認

ファイルをadd
git add ファイル名
説明文と共に変更を保存
git commit -m "コメント"
ファイルの変更を確認
git diff
変更をいっぺんにadd
git add.

GitHubのアカウントを作り、Gitにユーザー名を追加

GitHubのユーザー名をGitの設定に追加
git config --global user.username ユーザ名

・GitHubに作成した名前と全く同じ名前
・大文字小文字は区別されるので注意

REMOTE

GitHubに何かをおくとそれはGitHubのサーバー上に存在していることになる(リモートリポジトリ)
自分のローカル(コンピュータのこと)の変更をpushすることでプロジェクトを最新状態に保てる
リモートにある変更をpullしてそれぞれのコンピュータに取り込みプロジェクトを最新の状態にする

お互いのコンピュータにアクセスすることなくプロジェクトメンバー同士がコードや情報を共有できる

リモートリポジトリを作る

ローカルにあるバージョンをリモートのバージョンと同期するため、空っぽのリモートリポジトリをGitHubに作る
・new repository
・ローカルリポジトリと一致する名前をつけ、短い説明をつける
・publicを選択
・readmeはプロジェクトに関する説明、どう使うか、どう貢献するかを書くもの
・.gitignoreはGitに追跡しないでほしいものの一覧(パスワードファイルなど)
・licenseファイルはプロジェクトに対するライセンスを定義する
・create repository

ローカルとリモートをつなぐ

httpsボタンを選択し、 GitHubサーバ上におけるリポジトリのアドレスをコピーする
ターミナルでGitリポジトリとして初期化したフォルダの中から、GitHubサーバ上にあるリモートバージョンの場所をGitに知らせる(別の名前をつけ複数のリモートを設定することもできる。メインのリモートサーバに対しては通常originと名付ける)

ローカルとリモートをつなぐ
git remote add origin コピーしたURL

作業内容をリモートにPushする

Gitのブランチという仕組みは、プロジェクトの別々の箇所に対して別々のタイミングで作業できるようにするためのもの
最初のブランチはデフォルトではmasterという名前である

masterブランチをGitHub上のoriginという名前のremoteに送る
git push origin master

fork

リポジトリをフォークするとそのリポジトリのコピーを自分のGitHubアカウントの下に作ることになり、それはremoteリポジトリの一つとして使える
あるプロジェクトの自分自身のバージョンを作るために使用したり、元のプロジェクトに対してバグ修正や機能追加を送り返してあげるために使用する

clone(コピー)

リポジトリのコピーを自分のコンピュータ上に持ってくることができる
クローンすると新しいフォルダが作られる
別のGitリポジトリのフォルダの中にリポジトリをクローンしないように注意する

clone
git clone コピーしたURL

ブランチ

Gitリポジトリは必要に応じてブランチを使い、隔離された作業環境を作れる
プロジェクトで作業するとき、または他人と作業するとき、ブランチを作って変更を保存する
メインのブランチを安全に保ち作業できる
作業が終わり、準備が整ったら、ブランチをmasterにマージする

ブランチを作る

ブランチを作るとGitは今いるブランチのものをすべてコピーして、新しく作ったブランチに持ってきてくれる

今いるブランチの確認
git status

ブランチ名は大文字小文字区別あり

ブランチをつくる
git branch ブランチにつける名前
作ったブランチにいって作業する
git checkout ブランチの名前

ソーシャルコーディング

他の人と共同作業が簡単にできるところがGitHubのいいところのひとつ
コラボレーターというのはGitHubのユーザでかつ誰かのリポジトリにアクセスし、編集することが許された権限を持つ人たちのこと
プロジェクトにコラボレーターを追加するにはGitHubリポジトリページに行き、Settingをクリックする
その後Collaboratorsタブを選択、追加したいユーザ名を入力しAddをクリックする

Pull

誰かと一緒に作業していて、ファイルを最新に保ちたいという状況になったとき、pullすることで変更を取り込める

リモートのブランチから変更をpullする
git pull リモートの名前 ブランチの名前
pullする前にリモート上で行われた変更をみてみる
git fetch --dry--run

なにも変更がなければ、Already up-to-date、何か変更があればGitがそれをローカルにマージしてくれる

Pull Request

フォークしたリポジトリに変更や改善を加えたら、それらの変更を元のリポジトリのメンテナーに対して変更を元のリポジトリにpullしてほしいというrequestを送る

ローカルでマージする

あるブランチを今いるブランチにマージする
git merge ブランチの名前
ブランチの切り替え
git checkout ブランチの名前
ローカルのブランチを消す
git branch -d ブランチの名前
リモートのブランチを消す
git push リモートの名前 --delete ブランチの名前
リモートブランチをPullする
git pull リモートの名前 ブランチの名前

注意点

プロジェクト名が複数単語から作られる場合ハイフンをいれる
例 shopping-site