TECH EXPERT 16日目 GItHub

GItHub まとめ

 

 

 

Git ソースコードバージョン管理システムセーブポイントの作成。

GItHub Gitを利用して簡単に複数人で開発ができるツール。

 

ローカルリポジトリ 自分の箱

リモートリポジトリ 世界の箱

コミット :ファイルやディレクトリの変更修正を、リポジトリに記録

コミットログ:今まで行ったcommitの履歴が確認できる GitHubDesktop左上History

プッシュ:ローカルリポジトリでのコミットをリモートリポジトリに反映させる操作

 

 

例 ユーザー管理が目的でルーティングを編集してコミット

ユーザー管理が目的でコントローラーを編集してコミット。

 

など細かいコミットをすることで作業の進捗を管理できる。
エラーが起こった際に、どの作業が原因かスムーズに切り分けできる。

 

いちいちするのは面倒

 

ある程度まとめて作業をしてから、分けてコミットをすれば効率が良く下記を理解する。

インデックス:変更修正が一時的に保存される場所。 箱 コミットの対象

アド:追加ファイル、変更箇所をインデックスに追加してコミットの対象にすること。

 

梱包した(アド)数種類の段ボール(インデックス)をコミットで発送するイメージ。

 

 

 

 

GitHub複数人開発のついて

 

ごちゃごちゃしてるが

本流とは別に副流、があるので複数人で作業可能。

メンバーからの校正、ローカルまたリモートへの反映、分岐前に戻るが可能。

(プッシュとプル)

 

プログラマーにおいて一番大事なのはコミュニケーション能力であると

考えさせられた。

ここでのコミュニケーション能力は対人会話能力とかじゃなくて、 

自身から発信をして相手の意見を尊重し取り入れる能力でFAです。

 

 

 

ブランチ:リポジトリで管理しているファイルやディレクトリの流れを記録していく場所

メリット

リポジトリで管理しているファイルやディレクトリの本流に影響を与えずに作業ができること
・ブランチを切ることで目的別に同時並行で作業が行えること
・不具合が発生した場合も対応が容易になること


プルリクエスト:ブランチでのコミット履歴を残すと共に、各コミットにおける変更修正にコメントをつけることができる機能のこと。

プルリクエストの詳細には、What(何を)とWhy(なぜ)を書く マークダウン形式

対人なのでわかりやすさを意識する。


コードレビュー:複数人での開発においては、コードの記述内容に問題がないか、他の開発メンバー等にレビューを依頼すること

LGTM:Looks good to meの略 問題なしという意味。


merge(マージ):機能実装のために作成したブランチを、リモートリポジトリ上のmasterブランチに統合する作業


pull(プル):リモートリポジトリの変更をローカルリポジトリに取り込む操作のこと。

git cloneコマンド:リモートリポジトリを自分のパソコンにダウンロードするコマンド。
%  git clone https://github.com/username/git-app.git

リモートリポジトリのURLに.gitを加えた文字列指定

他人のものは勝手にプッシュできない。

 

 

 

 

 

 

 

ブランチ作成忘れの場合

 

 

ブランチを作成することを忘れてコードを書き進めてしまった場合、ブランチを作成したら   Bring my changes to ブランチ名 を選択する。 引継ぎできる。

 

stash:現在の作業を一時的に退避したい時、退避した作業を元に戻したい時などに使用するものである。

Leave my changes on master の場合の保留ブランチ

 

コンフリクトの場合 複数人作成時のファイル矛盾エラー


コンフリクト:あるファイルにおいてブランチごとに情報が異なり辻褄が合わない状況。

マージの際エラー発生→マスターの修正、またどちらかのブランチ記述の削除

 

まずコンフリクトを起こさないように

・ブランチ作業前にマスターブランチのプルを行う。

・複数人での作業時は打ち合わせ、コミュニケーションをとって作業。

(無闇に同じファイルで作業しない、被りそうな記述箇所は事前に確認)

誤った情報をpushしてしまった場合

解:リモートリポジトリのコミットは打ち消せる。

revert:誤ったcommitを打ち消すこと。GitHubDesktopの「History」から処理。

間違ったコミットはpush前なら undoで削除可能。

 

✴︎リモートリポジトリの確認方法
$ git remote -v コマンドでURLを確認できる。