GitとGitHubの違い
つっこまれたらうまく説明できなかったので、今自分の知ってることを復習としてまとめます。
バージョン管理システムとは
- ただ保存するだけでなく、誰がいつどこを変更したのか記録ができる
- データがバッティングすることなく、複数人で修正できる
- 過去のデータを復元できる
- 上書きしちゃった⇒戻すことができる
Gitとは?
バージョン管理システムの1種。
- ソースコードの履歴管理・バージョン管理ができる
- 各変更をスナップショットとして記録
なぜGitが人気なのか?
- 生みの親がLinuxの創設者であるため。
- フリーのライセンス。使用するのに料金がかからない。
- 分散型だから(他有名なバージョン管理システムは分散型でなく集中型が多い)
リポジトリとは
英語で「貯蔵庫」の意味。データを保存するための場所ということ。
リモートリポジトリ:
サーバー上に置く、1個しかないメインとなるリポジトリ。
ローカルリポジトリ:
我々のPC内にあって作業者の数だけあるリポジトリ。
ローカルを経由するのはなぜ?
リモートが落ちてしまったり、ハッキングされた時に、ローカルを使用して復活させたりできる。
要は、ローカルがバックアップの代わりになっている。
こういったのを分散型と呼ぶ。
GitHubとは?
Gitを軸にした開発を支援するWEBアプリケーション。
リモートサーバーの中身をウェブブラウザで見るためのツール。
Gitの操作をWeb上で視覚的に行える。(GitはCUIだけど、GitHubならGUIで行える)
プルリクエスト、レビュー、Issue管理、CI/CD連携も行えるので、チーム開発に便利。
Gitリポジトリの共有・公開、複数人での開発・リモートでの開発に便利。
コードを公開・共有できる。
ワーキングツリー・作業ディレクトリ
Ctrl + S で保存した時点では、Gitのリポジトリにはまだ入っていない。
この段階では「作業ディレクトリ(ワーキングツリー)」に保存されているだけ。
リモートリポジトリに修正内容を反映させる流れ
git init
リポジトリの作成。
自分のアプリケーション内に「.git」という名前のディレクトリが作成される。
git add
変更したファイルを「保存対象として選ぶ」操作。
gitの管理下にするように追加。
ステージング(ファイルがgitの管理下にある状態、git statusで状態を見ると緑色で表示される)
まだリモートリポジトリには送られない。ステージングエリアに追加している段階。
git commit
現在の状態をgitで保存する。
この状態ではリモートリポジトリには反映されてない。gitに保存しただけ。
-m
はメッセージをつける。
セーブポイントの役割。
ステージングエリアにあるものをローカルリポジトリに保存する操作。
git push origin main
ローカルリポジトリの内容をリモートリポジトリに反映させる。
originはリモートサーバーのことを指す。
参考文献
Discussion