LoginSignup
0
0

More than 1 year has passed since last update.

Gitの基本コマンド

Posted at

はじめに

これから実務に入るにあたって、コマンドを調べる際に効率的に調べられるようにまとめました。

Gitでよく使うコマンド

git clone

Gitリポジトリのコピー
ファイルと.gitディレクトリの両方がコピーされる。

$ git clone <リポジトリ名>

git add

変更をステージに追加する
※ステージは一部のファイルを変更するために存在する

$ git add <ファイル名>
$ git add <ディレクトリ名>
$ git add .

git commit

変更を記録する(コミット)

<わかりやすいコミットメッセージ>

1行目:変更内容の要約
2行目:空行
3行目:変更した理由

$ git commit
$ git commit -m "<メッセージ>"   //エディタ立ち上がらずに記録
$ git commit -v               //変更内容を確認できる

git status

現在の変更状況を確認
①ワークツリーとステージの間で変更されたファイル
②ステージとリポジトリの間で変更されたファイル

$ git status

git diff

変更差分を確認する

# git addする前の変更分
$ git diff
$ git diff <ファイル名>

# git addした後の変更分
git diff --staged

git log

変更履歴を確認する

$ git log

#1行で表示する
$ git log --oneline

#ファイルの変更差分を表示する
$ git log -p index.html

#表示するコミット数を制限する
$ git log -n <コミット数>

git rm

ファイルの削除を記録する

# ファイルごと削除
$ git rm <ファイル名> //ワークツリーとリポジトリのファイルの削除
$ git rm -r <ディレクトリ名>

#ファイルを残したいとき
$ git rm --cached <ファイル名> //リポジトリのファイルのみ削除

git mv

ファイルの移動を記録する

$ git mv <旧ファイル><新ファイル>

# 以下のコマンドと同じ
$ mv <旧ファイル><新ファイル>
$ git rm <旧ファイル>
$ git add <新ファイル>

git remote add

リモートリポジトリ(GitHub)を新規追加する

#originというショートカットでurlのリモートリポジトリを登録
$ git remote add origin <GitHubのURL>

git push

リモートリポジトリ(GitHub)へ送信する

$ git push <ブランチ名><リモート名>
$ git push origin master

git config --global alias

コマンドにエイリアスをつける

$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.br branch
$ git config --global alias.co checkout

git checkout

ファイルへの変更を取り消す

$ git checkout -- <ファイル名>
$ git checkout -- <ディレクトリ名>

# 全変更を取り消す
$ git checkout -- .

git reset HEAD

ステージした変更を取り消す
※ワークツリーのファイルには影響しない(削除されない)

$ git reset HEAD <ファイル名>
$ git reset HEAD <ディレクトリ名>

#全変更を取り消す
$ git reset HEAD .

git commit --amend

直前のコミットをやり直す

$ git commit --amend

git remote

リモートの表示

$ git remote
#対応するリモートの表示
$ git remote -v

git remote add

リモートリポジトリを新規追加する
※リモートリポジトリは複数登録可

$ git remote add <リモート名> <リモートURL>

git fetch

リモートから情報を取得
リモートリポジトリからローカルリポジトリに情報を取ってくる
remotes/リモート/ブランチに保存

$ git fetch <リモート名>
$ git fetch origin

git pull

リモートから情報を取得してマージする
ワークツリーまで一度に反映する

$ git pull <リモート名> <ブランチ名>
$ git pull origin master

#上記コマンドは省略可能
$ git pull

#下記コマンドと同じ
$ git fetch origin master
$ git merge origin/master

git remote show

リモートの詳細情報を表示する

$ git remote show <リモート名>
$ git remote show origin

git remote rename

リモートを変更、削除する

#名前の変更
$ git remote rename <旧リモート名> <新リモート名>
$ git remote rename tutorial new_tutorial

#削除する
$ git remote rm <リモート名>
$ git remote rm new_tutorial

git branch

ブランチの一覧を表示
ブランチを新規追加

#ブランチの一覧表示
$ git branch
$ git branch -a //全てのブランチの表示

#ブランチを新規追加
$ git branch <ブランチ名>
$ git branch feature

git checkout

ブランチを切り替える

$ git checkout <既存ブランチ名>
$ git checkout feature

#ブランチを新規作成して切り替える
$ git checkout -b <新ブランチ名>

git merge

変更履歴をマージ

$ git merge <ブランチ名>
$ git merge <リモート名/ブランチ名>
$ git merge origin/master

git branch

ブランチを変更、削除する

#変更する
$ git branch -m <ブランチ名>
$ git branch -m new_branch

#削除する
$ git branch -d <ブランチ名>
$ git branch -d feature

#強制削除
$ git branch -D <ブランチ名>

git rebase

リベースで履歴を整えた形で変更を統合する
GitHubにプッシュしたコミットをリベースするのはNG
git push -fはNG

$ git rebase <ブランチ名>

git pull --rebase

プルのリベース型

$ git pull --rebase <リモート名> <ブランチ名>
$ git pull --rebase origin master

プルをリベース型に設定

$ git config --global pull.rebase true
#masterブランチでgit pullするときだけ
$ git config branch.master.rebase true

git rebase -i

複数のコミットをやり直す

$ git rebase -i < コミットID>
$ git rebase -i HEAD~3

#やり直したいcommitをeditにする
edit gh21f6d ヘッダーの修正
pick 193054e ファイルの追加
pick 84gha0d READEME修正

#やり直したら実行する
$ git commit --amend

#次のコミットへ進む(リベース完了)
$ git rebase --continue

コミットを並び替える、削除する

$ git rebase -i HEAD~3

#コミットを削除する
pick 193054e ファイルの追加
pick 84gha0d READEME修正

#並び替えたい順に並び替える
pick 84gha0d READEME修正
pick 193054e ファイルの追加

#コミットをまとめる
pick gh21f6d ヘッダーの修正
squash 193054e ファイルの追加
squash 84gha0d READEME修正

#コミットの分割
pick gh21f6d ヘッダーの修正
pick 193054e ファイルの追加
edit 84gha0d READEME修正とindex修正

$ git reset HEAD^
$ git add README
$ git commit -m 'README修正'
$ git add index.html
$ git commit -m 'index.html修正'
$ git rebase --continue

git tag

タグの作成

#注釈付きタグ
$ git tag -a [タグ名] -m "[メッセージ]"
$ git tag -a 20210730_01 -m "version 20210730_01"

#軽量版タグ
$ git tag [タグ名]
$ git tag 20210730_01

#後からタグ付けする
$ git tag [タグ名] [コミット名]
$ git tag 20210730_01 8a6cbc4

#タグのデータを表示する
$ git show [タグ名]
$ git show 20210730_01

#タグをリモートリポジトリに送信
$ git push [リモート名] [タグ名]
$ git push origin 20210730_01

#タグの一斉送信
$ git push origin --tags

git stash

作業を一次避難する

$ git stash
$ git stash save

#避難した作業を確認
$ git stash list

#避難した作業を復元
$ git stash apply
#ステージの状況も復元
$ git stash apply --index

#特定の作業を復元
$ git stash apply [スタッシュ名]
$ git stash apply stash@{1}

#最新の作業を削除する
$ git stash drop

# 特定の作業を削除する
$ git stash drop [スタッシュ名]
$ git stash drop stash@{1}

#全作業を削除する
$ git stash clear

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0