はじめに
簡単なgitコマンド集です。
SourcetreeやVSCodeなどのGUIツールでもある程度はできますが、コマンド操作が必要になった時のために思い出せるとよいなーと考え、書いてみました。
読者の想定
- gitの基本的な考えは理解している
- リモートのリポジトリをローカルにクローンし、ブランチを切り替えながら作業することや、コミット・マージなどの単語はある程度わかる など
コマンド
コミット履歴を確認する
git log -3
- ちゃんと
git pull
できているか確認するときなどに。 - 上記のコマンドで最近の3コミットまで確認できる。(数字=表示するコミット数)
- オプションなしの場合はずっと遡れる。
- コミット履歴の表示は
q
で抜ける。
ブランチを切り替える
git checkout {branch}
- ブランチの移動。
- ローカルになくリモートにあるブランチをpullして切り替えたい場合も、これだけでOK。(remotes/origin/{branch}にする必要はない)
ローカルブランチを作成する
git checkout -b {branch}
- 現行ブランチをベースにブランチ作成&移動
ローカルブランチを削除する
git branch -d {branch}
- 現行ブランチは削除できない。他のブランチに移動してから実行する。
- ローカルのブランチしか削除されない。リモートブランチを削除する場合は
git push origin :{branch}
ローカルブランチを確認する
git branch
- ローカルブランチの一覧と、現行ブランチを確認する。
- リモートブランチも含めて確認する場合は
git branch -a
- ブランチ表示は
q
で抜ける。
変更をステージする
git add .
- ステージ→コミットの流れで変更がコミットされる。言い換えると、ステージされたものがコミットされる。
- すべての変更をステージしたい場合は上記のコマンド。ファイルごとにステージする場合は
git add {path}
ステージされた変更をコミットする
git commit -m '{message}'
- オプションなしでもコミットできるが、コミットメッセージを付ける習慣にしておくのがおすすめ。
タグを付ける
git tag {tag} -m '{message}'
- 現行ブランチの最新コミットに対してタグ付けする。
ローカルの変更をリモートに反映する
git push origin {branch}
git push origin {tag}
- ブランチの変更もタグの追加も同じコマンドでリモートに反映できる。
-
git push origin :{branch}
とコロンを付けるとリモートのブランチやタグを削除するコマンドになってしまうので注意。
リモートの変更を取り込む
git pull
- 現行ブランチのリモートでの更新を取り込む。
-
git pull
≒git fetch
+git merge
※厳密には異なるらしい
ローカルの変更を取り消す
git checkout {path}
- ステージされていない(=
git add
していない)変更を取り消す。 - ローカルの直前のコミットまでファイルを戻す。
ローカルの変更を退避する
git stash
git stash save '{message}'
- ステージやコミットせずにローカルの変更を退避する。退避した後は直前のコミットの状態まで戻る。
- 退避したものは
git stash list
で確認できる。 - 退避したものを再度適用する場合は
git stash apply stash@{0}
など。
別のブランチをマージする
git merge {branch}
- 現行ブランチに、指定したブランチをマージする。
- マージコミットが発生する場合は、viのビューになってコミットメッセージの入力を求められる。
- 詳細を説明する必要がなければ、そのまま
:wq
で終了すればOK。
- 詳細を説明する必要がなければ、そのまま
- 競合した場合は競合したファイルを修正・保存して
git commit
-
git status
すると、次に何をすればよいかが指示される。
-