インターン先でプログラミングを勉強している大学三回生です。
今回は自分で後から見直せるようにGitのコマンドをメモっておこうと思います。
興味のある方はぜひ見てください!!
Gitコマンド一覧
$ git init
gitを利用するために必要な「リポジトリ」を作成するコマンド。
リポジトリを作成したいディレクトリでこのコマンドを入力されると「.git」ディレクトリが作成される。
$ git clone
既存のリポジトリからファイルをコピーして作業用のリポジトリを作成するコマンド。
$ git gc
リポジトリ内の最適化をすることができるコマンドです。
マージやコミットを大量にしたときなどにストレージ容量を減らすことができる。
$ git pull
他のリポジトリの変更点をローカルリポジトリにマージするコマンド。
リモートリポジトリと同期する。
$ git push
リモートリポジトリに自分のリポジトリの内容をプッシュするコマンド。
$ git add
リポジトリに新たにファイルを加えたり、変更を加えたファイルを指定するコマンド。
$ git commit
「$ git add」で指定したファイルを保存・コミットするコマンド。
$ git reset
直前のコミットを削除することができるコマンド。
小さなミスなどを見つけたときなどに使用する。
$ git tag
直前のコミットに対してわかりやすいようにタグ・名前を付けることができる。
$ git status
追加・変更されたファイルの状況をみることができる。
$ git diff
指定したファイルの変更点を見ることができる。
$ git mv
ファイル名を変更できる。
$ git log
コミットの履歴を見ることができる。
$ git revert
既存のコミットを取り消すことができる。
「取り消したいコミットを打ち消すような新しいコミットを作成」という処理。
コミットを取り消した履歴が残る
$ git stash
一時的にコミットされていない変更を保存できる。
$ git branch
新たなブランチを作成。
$ git checkout
作業したいブランチを切り替えることができる。
$ git merge
現在作業しているブランチに他のブランチの変更点を取り込むことができる。
$ git rebase
指定したコミットを作り直してログを掃除するためのコマンド。
あるブランチに対して行った変更点を、派生元のより新しいリビジョンのものに適用。
リポジトリとは
リポジトリではファイルやディレクトリの状態を管理しています。
変更履歴などを管理したいディレクトリをリポジトリの管理下に置くことで、そのディレクトリのファイルやディレクトリの変更履歴を記録することができます。
そしてこのリポジトリは2つの種類に分けることができます。
・ローカルリポジトリ
ユーザーの一人一人が作業するために自分のマシン内に作成するリポジトリです。
・リモートリポジトリ
専用のサーバーに配置してチームなどの複数のユーザーで共有するためのリポジトリです。
この二つのリポジトリに分けて作業することで、普段の自分の作業をローカルリポジトリで、そしてその内容を公開またはほかの人の作業内容を取得したくなったら、リモートリポジトリに公開、取得することができます。
ディレクトリて何?
Gitを勉強し始めてから「ディレクトリ」という言葉を聞くことが多くなり、調べてみました。
ディレクトリとはフォルダと同義で使っても大丈夫なようです。
基本的には複数のファイルを管理する場所と考えればよいでしょう。
ブランチって何?
ブランチはプロジェクト本体に影響を与えずに分岐して作業するときに使用します。
安定したバージョンのブランチのことをMasterブランチと呼び、新しい機能や修正したい部分があるときにここから分岐して並行作業を行うことができます。
ブランチを利用するメリット
・プロジェクト本体に影響を与えずに作業することができる。
・目的別に並行作業することができる。
・不具合が生じたときの対応が容易。
ということがメリットとして挙げられます。
ワークツリーとは
ワークツリーとはGit管理下にある実際に作業しているディレクトリのことです。
そして、リポジトリとワークツリーの間にはインデックスというリポジトリにコミットする準備をする場所があります。
Gitではワークツリーからリポジトリに直接コミットするのではなくこのインデックスに設定された状態をリポジトリに記録するという形になります。
ステージング・エリア(ステージング領域)
ステージング・エリアは次にコミットした時に登録されるコンテンツのリストです。
インデックスと同義で使われています。
先ほども言った通りこのステージング・エリアを通してコミットすることになります。
rebaseとmergeの違い
rebaseとmergeはどちらも異なるブランチの変更を統合するために使われます。
rebaseでは、コミットグラフを綺麗に整理することができます。
しかし、履歴やコミットがそもそも違うものになってしまうので、過去のログを見ることができなくなってしまいます。
mergeではリベースと比べてコミットログが汚く見えますが、過去のコミットを見ることもできますし、コンフリクトが起きても一回で解消することができ、便利です。
参考文献にわかりやすいサイトを載せて置きます。
まとめ
今回はGitに関して僕が疑問に思ったことやGitのコマンドについてまとめてみました。
Gitは共同開発する上で必須なのでこれからもしっかり勉強していこうと考えています。
参考文献
gitコマンド
ワークツリ
ディレクトリ
ブランチ
ステージング・エリア
リポジトリ
わかりやすいrebaseとmergeの違い