見出し画像

Git初心者がGitとGitHubを勉強してみた


ももやんです。今回はいちばんやさしいGit&GitHubの教本という本について簡単にまとめます🐻‍❄️​

https://www.amazon.co.jp/いちばんやさしいGit-GitHubの教本-人気講師が教えるバージョン管理-共有入門-「いちばんやさしい教本」シリーズ/dp/429500524X

GitとGitHubとは

Gitとは

バージョン管理システムのこと。ファイルの変更をバージョンとして記録し、記録した地点へいつでも戻れる仕組みを提供しています。作業者が複数人いても、ファイルの最新状況や変更の履歴を分かりやすく保てる仕組みです。

バージョンとは
バージョンとは変化するファイルの状態のことを「バージョン」という。同じファイルの複数バージョンを保持することを「バージョン管理」という。

GitHubとは

Gitの仕組みを利用して、インターネット上でのスムーズな共同作業を可能にしたWebサービスのこと。さまざまなプロジェクトでも使用されていますよね!

コミット

ユーザーが任意のタイミングで記録を保存する操作を「コミット」といいます。コミットを連続で保存していくことで、「いつ」「誰が」「どんな変更を」したのかファイルの変更履歴でわかるようになります。

下の図のように、Gitで管理しているファイルはコミット単位で行ったり来たりすることができます!便利です👏

コミット

コミットは自動的に行われないため、適切なタイミングで自分で行う必要があります⚠️

リポジトリ

リポジトリはコミットを貯めていく場所のことです。新規作成する場合と、既存のものをコピー(クローン)する場合があります。

リポジトリ

ローカルリポジトリとリモートリポジトリ

ローカルリポジトリは手元で使っているパソコン内に作成する自分専用のもの。リモートリポジトリはインターネットなどのネットワーク上に存在するリポジトリのことです。自分でサーバーを用意することもあるし、GitHubのようなサービスを使用することもあります。

ローカルリポジトリとリモートリポジトリ

3つの場所

ローカルリポジトリにコミットをして、ファイルの状態を保存するには、「ワークツリー」「ステージングエリア」「Gitディレクトリ」と呼ばれる3つの場所を用います。

3つの場所

ワークツリー

実際に作業を行っているディレクトリで、編集を行った最新のファイルが存在します。最後にコミットした状態から手が加わっていない「unmodified(変更されていない」状態になってます。その後に何らかの編集をすると、ファイルは「modified(変更済み)」になります。新規のファイルを作成した時には、そのファイルは「untracked(追跡されていない)」になります。

ステージングエリア

インデックスとも言います。コミットするファイルを登録する場所です。コミットしたいファイルをステージングエリアに追加すると「staged(ステージングエリアに追加済み)」になり、コミットすることができます。ステージングエリアに登録されていないファイルはコミットできません❌untrackedファイルをGitの管理下に置きたい場合もステージングエリアへの追加をします。

Gitディレクトリはコミットを格納する場所

Gitディレクトリにはコミットした時点での変更箇所のデータが格納されます。コミットするとstagedだったファイルはunmodifiedになります。

コマンド

カレントディレクトリのパスを確認する

pwd

新しいディレクトリを作成する

mkdirコマンドの後に新しく作るディレクトリパスを指定すると、カレントディレクトリの中に新しいディレクトリが作成されます。

mkdir 新しく作るディレクトリパス

ディレクトリの中身を確認する

ls

全てのファイルとディレクトリを表示するとき📝
lsコマンドに-aオプションをつけると全てのファイルが表示されます。

他のディレクトリの中身を確認したい時📝
lsコマンドの後にディレクトリパスをつけると、カレントディレクトリから移動せずとも別のディレクトリの中身を確認できます。
例:ls Documents

カレントディレクトリを移動する

cdコマンドの後にディレクトリパスををつけることで、指定したディレクトリに移動できます。

cd ディレクトリパス

ローカルリポジトリを作成する

git init

ステージングエリアに登録する

ファイルやディレクトリを指定してステージングエリアに追加する
git add ファイルパスorディレクトリパス
 
変更したファイルをまとめてステージングエリアに追加する
git add -A

📝ファイルやディレクトリの指定方法

カレントディレクトリ配下全てのファイルを追加
git add .
 
任意のディレクトリ配下の全てのファイルを追加
git add ディレクトリ名
 
ディレクトリ配下の特定のファイルを追加
git add ディレクトリ名/ファイル名

ステージングエリアへの登録を取り消す

git reset HEAD ファイル名またはディレクトリパス

ローカルリポジトリの状態を確認する

git status

ワークツリーとステージングエリアの差分を確認する

git diff

ステージングエリアとGitディレクトリの差分を確認する

git diff --cached

ローカルリポジトリにコミットする

git commit -m "コミットメッセージ"

ワークツリーの変更を取り消す

git checkout -- ファイル名orディレクトリパス
 
git restore ファイル名orディレクトリパス

Git管理下のファイルを削除する

ファイルを削除するとき
git rm remove ファイル名
 
ディレクトリを削除するとき
git rm -r ディレクトリパス

コミット履歴を確認する

コミット履歴の確認
git log
 
コミット履歴を差分つきで確認
git log -p

ブランチを作成する

git branch ブランチ名

使用中のブランチを確認する

git branch

ブラントを切り替える(チェックアウトする)

git checkout 切り替えたいブランチ名
 
git switch 切り替えたいブランチ名

ブランチを作成し、チェックアウトする

git checkout -b 作成し、切り替えたいブランチ名

プッシュしてリモートリポジトリに反映する

git push プッシュ先のリモートリポジトリの名前 プッシュするブランチ名

リモートリポジトリからローカルリポジトリに反映する

git pull プルしたいリモートリポジトリの名前 プルしたいブランチ名

おわりに

ひとまずPush, Pull, Mergeなど基本的なことはできるようになりました、、!忘れないように定期的に復習しないとですね✏️頑張ります!

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