![見出し画像](https://assets.st-note.com/production/uploads/images/96817616/rectangle_large_type_2_d9fd5f3323e0e1df4ccc0e9ca2970764.png?width=1200)
Git初心者がGitとGitHubを勉強してみた
ももやんです。今回はいちばんやさしいGit&GitHubの教本という本について簡単にまとめます🐻❄️
https://www.amazon.co.jp/いちばんやさしいGit-GitHubの教本-人気講師が教えるバージョン管理-共有入門-「いちばんやさしい教本」シリーズ/dp/429500524X
GitとGitHubとは
Gitとは
バージョン管理システムのこと。ファイルの変更をバージョンとして記録し、記録した地点へいつでも戻れる仕組みを提供しています。作業者が複数人いても、ファイルの最新状況や変更の履歴を分かりやすく保てる仕組みです。
バージョンとは
バージョンとは変化するファイルの状態のことを「バージョン」という。同じファイルの複数バージョンを保持することを「バージョン管理」という。
GitHubとは
Gitの仕組みを利用して、インターネット上でのスムーズな共同作業を可能にしたWebサービスのこと。さまざまなプロジェクトでも使用されていますよね!
コミット
ユーザーが任意のタイミングで記録を保存する操作を「コミット」といいます。コミットを連続で保存していくことで、「いつ」「誰が」「どんな変更を」したのかファイルの変更履歴でわかるようになります。
下の図のように、Gitで管理しているファイルはコミット単位で行ったり来たりすることができます!便利です👏
![](https://assets.st-note.com/img/1669388362329-4jDOdTo7wb.png?width=1200)
コミットは自動的に行われないため、適切なタイミングで自分で行う必要があります⚠️
リポジトリ
リポジトリはコミットを貯めていく場所のことです。新規作成する場合と、既存のものをコピー(クローン)する場合があります。
![](https://assets.st-note.com/img/1669389206622-a16WcrICef.png?width=1200)
ローカルリポジトリとリモートリポジトリ
ローカルリポジトリは手元で使っているパソコン内に作成する自分専用のもの。リモートリポジトリはインターネットなどのネットワーク上に存在するリポジトリのことです。自分でサーバーを用意することもあるし、GitHubのようなサービスを使用することもあります。
![](https://assets.st-note.com/img/1669389718958-uiggTFyIvm.png?width=1200)
3つの場所
ローカルリポジトリにコミットをして、ファイルの状態を保存するには、「ワークツリー」「ステージングエリア」「Gitディレクトリ」と呼ばれる3つの場所を用います。
![](https://assets.st-note.com/img/1669391279785-uMl5DSc0qY.png?width=1200)
ワークツリー
実際に作業を行っているディレクトリで、編集を行った最新のファイルが存在します。最後にコミットした状態から手が加わっていない「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など基本的なことはできるようになりました、、!忘れないように定期的に復習しないとですね✏️頑張ります!
この記事が気に入ったらサポートをしてみませんか?