主に、Git for WindowsなどのCUIで使用するGitコマンドをまとめます。
git init
git init
は、指定したディレクトリにリポジトリ機能を持たせることが出来るコマンド。
このコマンドを実行しないとコミットしたりできない。但し、リモートブランチを取得する場合はこのコマンドは不要。
カレントディレクトリにリポジトリ機能を持たせる
git init
指定したディレクトリにリポジトリ機能を持たせる
git init dir
git tag
git tag
は特定のコミットに対して名前を付けるコマンド。
このtagはリポジトリ内で一意の命名にしなければならず、コミットIDやブランチ名の代わりとして使用できる。
通常、コミットを行うとコミットIDが生成されるが、後から見返したときにそのコミットIDの意味を見失いやすい。
使いどころとしては例えば1つのjsファイルの中で5つのメソッドを作成しなければならない場合、
メソッドが1つ完成するごとにtag付けを行うことで、後から見返したときにその時点のコミットがどんなものなのか思い出しやすくなるといった使い方ができる。
git branch
ブランチというはの一般的に”分岐”とか”枝”と言われます。
例えば本番運用中のサービスに機能Aを追加したい、機能Bを追加したい、バグを修正したいといった要望があると思います。
こういうときは要望ごとにブランチを作ります。
通常、本番運用中の資源はmasterブランチに格納されているので、masterブランチを起点として機能A用のブランチ(master + A)、機能B用のブランチ(master + B)、バグ修正用のブランチ(master + bug)を作ることによってそれぞれを独立した形で並行して開発作業を行うことができます。
この方法で開発作業を進めれば、機能Aと機能Bの資源がごちゃまぜになったりすることを防いだり、「機能Bだけ先行してリリースしたい」といったときに機能B用のブランチだけmasterとマージすることにより、他のブランチに影響せずスムーズにリリースすることができます。
新規ブランチを作成する
コマンド | 意味 |
---|---|
git branch [new branch] |
ローカルリポジトリ上に [new branch]の名前で新規ブランチを作成します。作成する際は今現在いるブランチを起点として新規ブランチを作成します。 |
ブランチの一覧を表示する
コマンド | 意味 |
---|---|
git branch |
ローカルリポジトリのブランチを一覧表示します。 |
git branch -r |
リモートリポジトリのブランチを一覧表示します。 |
git branch -a |
ローカルリポジトリと、リモートリポジトリのブランチを一覧表示します。 |
git branch -vv |
ローカルリポジトリのブランチが、リモートリポジトリのどのブランチを追跡しているか確認できます。 |
git checkout
このコマンドで私が良く使うのは以下の機能です。
- 新規ブランチを作成してチェックアウト。
- 既存ブランチへチェックアウト。
※チェックアウトとは、ブランチを切り替えることを指します。
ブランチの一覧を表示する
コマンド | 意味 |
---|---|
git checkout -b [new branch] |
新規ブランチを作成し、チェックアウトします。 |
git checkout [branch] |
既存ブランチへチェックアウトします。 |
# git checkout -b [new branch]
git checkout -b develop
git clone
リモートリポジトリの内容をローカルへ複製します。
# git clone [リポジトリURL]
git clone http://localhost/group1/prj1.git
git remote
ローカルリポジトリに登録されているリモートリポジトリの一覧を表示します。
$ git remote -v
origin http://localhost/group1/prj1.git (fetch)
origin http://localhost/group1/prj1.git (push)
originとは、リモートリポジトリ(URL)の別名を指します。
コマンド操作をする際にいちいちURLを引数に取ると長くなってしまうので、
コマンド操作をするときはこの別名を使用します。
SQLでいうAS句で指定する別名みたいなものです。
git merge
ブランチ同士のマージ(統合)をします。
例)
マージ元:developブランチ
マージ先:masterブランチ
つまり、developブランチの内容とmasterブランチへ統合します。
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj1 (master) //…①
$ git checkout develop
Switched to branch 'develop'
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj1 (develop) //…②
$ cat README.md
# prj1_develop2
abc
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj1 (develop) //…③
$ git checkout master
Switched to branch 'master'
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj1 (master) //…④
$ cat README.md
# prj_master1
abc
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj1 (develop) //…⑤
$ git checkout master
Switched to branch 'master'
git push
ローカルリポジトリの内容(変更)をリモートリポジトリに反映する操作。
git pull
リモートリポジトリの内容(変更)をローカルリポジトリへ反映する操作。
git fetch
+ git merge
から成る。
以上で記事の解説はお終い!
もっとGitを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!