見出し画像

TECHCAMP名古屋11日目 応用カリキュラム19%まで


★Git/GitHubで学んだこと★

1.Gitとは
アプリケーションなどのプロジェクトをバージョン管理してくれるシステムです。

2.Gitを使う理由
ファイルの変更履歴を管理したり、
何か問題があったときに過去のファイルに戻れるようにしておくためです。

3.GitHubとは
gitの仕組みを利用したwebサービスです。
gitの機能に対してチーム開発に便利な機能が揃っており、
gitにおけるリモートリポジトリの役割も担っています。

世界中のあらゆるプロダクトが保存、公開されています。
グラフィカルな画面からGitを扱うことができます。
チーム開発に便利な様々な機能が用意されています。

4.GitHub Desktopとは
GitHubが提供しているデスクトップ用のアプリケーションです。
コンソールで実施する作業を、グラフィカルに表現してくれるため、
GitHubを利用した開発をより容易にしてくれます。

5.リポジトリ
変更履歴を管理しておくための入れ物です。
ファイルやディレクトリの変更履歴を記録しておきます。

6.ローカルリポジトリ
自分のPCなどのローカル環境に置くリポジトリのことです。

7.リモートリポジトリ
外部のサーバーなどのネットワーク上に置くリポジトリのことです。

8.リモートリポジトリのメリット
複数人でサービスを開発する時にファイルやディレクトリを共有することができます。
ローカル環境下で問題が起こったとしても、
またリモートリポジトリからダウンロードを行うことで、
元に戻すことができます。

9.インデックス
コミットをするファイルを登録するための場所です。
ファイルをコミットすると、インデックスに登録されているファイル群の変更が記録されます。

10.インデックスのメリット
一度に多くのファイルを変更した際に、どのファイル単位でコミットするかを選択するために使用します。

11.コミット
インデックスに追加された変更修正をバージョン記録する操作です。

12.コミットメッセージ
一つのコミットに対してつけるコメントのことです。
そのコミットでどのような作業をしたのかということを記録しておくために記述します。

13.ブランチ
リポジトリで管理をしているプロジェクトの履歴の1つです。
自分の作業をしている場所を表します。
ブランチ同士は独立しているため、それぞれのブランチは干渉しません。

開発者ごとに担当する機能を明確に分けることができます。
完成途中や問題のあるソースコードをリリースしないで済みます。

14.マスターブランチ
リポジトリに最初のコミットを行うと自動で作成されるブランチです。
masterブランチがリポジトリの大元のブランチとなることが多いです。

15.トピックブランチ
既にあるブランチをコピーして作られるブランチです。
機能ごとにトピックブランチを作成し、完成したらmasterブランチに統合していきます。

16.プルリクエスト
通称プルリクです。
作成したブランチをmasterブランチにマージをするときの確認作業のことです。
ブランチ間の差分を他の開発者から確認やレビューを貰うということを行います。
そのコードに問題が無いかどうかを他の開発者や上司に確認を行うためにプルリクエストを見て貰います。

17.プッシュ
ローカルリポジトリで加えた変更をリモートリポジトリに同期させることです。
ローカルでコミットが終わり、リモートに変更を同期させたい場合には必ずプッシュを行う必要があります。

18.空のコミットを作成してプッシュ
git commit --allow-empty -m 'empty'

19.LGTM
Looks good to meの略です。
コードに問題がないのでマージしていいよというプログラマーのサインです。
LGTMを貰ったら、マージしてプルを忘れずに行います。

20.マージ
ブランチとブランチを結合することです。

21.プル
リモートリポジトリの変更履歴を、ローカルリポジトリに反映させる操作のことです。
他の開発者による変更がリモートリポジトリに反映されたあとや、自分でマージを行った際には、
必ずこのプルの作業を行う必要があります。

22.GitHub flow
GitHub自体が推奨する開発フローです。
masterブランチのものは何であれデプロイ可能である。
新しいなにかに取り組む時は、説明的な名前のブランチをmasterから作成する。
作成したブランチにローカルでコミットし、サーバー上の同じ名前のブランチにも定期的に作業内容をpushする。
フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、プルリクエストを作成する
他の誰かがレビューして機能にOKを出してくれたら、あなたはコードをmasterへマージすることができる
レビューを経てマージをしたら、直ちにデプロイをする。

23.デプロイ
アプリケーションをサーバー上で利用可能な状態にすることです。

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

25.Behind
現在のブランチよりも、比較するブランチが進んでいる変更履歴

26.Ahead
現在のブランチが進めた更新履歴

27..gitignore
gitの管理対象から管理を外すためのファイルやディレクトリを指定するためのファイルです。
.gitignoreにファイルやディレクトリを指定すると、管理対象から外すことができます。

28..gitignoreの/log/*
logファイル以下のファイル、ディレクトリをgitの管理下から除外を行います。

29.git init
ローカルリポジトリを作成します。

30.git add
インデックスに追加します。

31.git status
インデックスに追加されている変更修正、されていない変更修正を確認します。

32.git commit
コミットします。
-m "message"をつけて変更内容を残します。

33.git log
コミットログを確認します。

34.git remote add
ローカルリポジトリにリモートリポジトリの情報を付与して、紐付けを行います。

35.origin
リモートリポジトリの別名です。
他の名前をつけることもできますが、GitHubではoriginとすることが一般的です。

36.git push
ローカルリポジトリでのコミットをリモートリポジトリに反映します。

37.git push origin master
ローカルリポジトリでのコミットをリモートリポジトリのマスターに反映します。

38.git clone
リモートリポジトリを、ローカルリポジトリとしてダウンロードします。
URLは、GitHubのClone or Downloadという緑色のボタンから参照できます。

39.メールアドレスを登録する方法
git config --global user.email sample@yahoo.co.jp

40.ユーザーを登録する方法
git config --global user.name sample

41.なぜcommitだけではなく、addをしてからcommitを行うのか
コードを書く作業と、Gitの操作を行ったり来たりしないためです。
addとcommitが分かれていることで、コードをまとめて書いてから、修正内容毎にコミットできます。

42.ローカルリポジトリにリモートリポジトリを紐付ける方法
GitHubのClone or Downloadボタンで表示されるURLをコピーします。
ターミナルでgit remote add origin URLとします。
最後に、git remoteで紐付けされたことを確認します。

43.masterブランチに移動する方法
git checkout master

44.リモートリポジトリのmasterブランチを反映する方法
git pull origin master

45.ブランチを作成せず、masterブランチ上でコードを書いてしまった場合の対処法
GitHubDesktopを使用している場合、トピックブランチを作成する時に選択肢が2つ出ます。

Leave my changes on master
元のブランチで書いていたコードを全て捨て、新しいブランチで0からコードを書く

Bring my changes to ブランチ名
元のブランチで書いていたコードを新しいブランチに引き継ぐ

Bring my changes to ブランチ名を選択します。

もしLeave my changes on masterを選択してしまった場合、次の手順で捨てたコードを復旧できます。
一度元のブランチに戻る。
stashed changesをクリック
restoreをクリック
これで、コードを復旧できます。
再度ブランチを作成し直し、今度こそ選択肢を間違えずにbring my changes to ブランチ名を選択します。

46.Bさんが修正したファイルをAさんが既に修正していてマージできない場合の対処法
1.コンフリクト箇所をAさんからBさんのトピックブランチに反映
2.コンフリクト箇所をBさんのトピックブランチで修正
3.修正したBさんのトピックブランチから修正ファイルをコミット
4.Bさんのブランチをマージ

47.コミットする際に気をつけること
コミットはなるべく細かく行うべきです。
1機能1コミットをするのがベターです。
なぜなら、基本的にファイルを元に戻したいと思ったときには、
コミットごとでしかファイルを元に戻すことができないためです。

この記事が気に入ったらサポートをしてみませんか?