1
1

More than 3 years have passed since last update.

gitコマンドまとめ

Posted at

はじめに

gitのコマンドを学んだので簡単にまとめていきます。

基本コマンド

まずはgitの基礎的なコマンドから書いていきます。

git init

ローカルリポジトリの新規作成するコマンド

$ git init

.gitディレクトリ作成される

.gitディレクトリの中身は以下のファイル
・リポジトリ
  ・圧縮ファイル
  ・ツーリーファイル
  ・コミットファイル

・インデックスファイル

・設定ファイル

git clone

リポジトリのコピーを作成するコマンド

git clone <リポジトリ名>(URL)

# hogeリポジトリのコピー作成
$ git clone https://github.com/hoge/hoge.git

他の人が作成したgithub上にあるプロジェクトから始める際に使う

git add

変更をステージに追加するコマンド

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

# hogeファイルの変更をステージに追加する
$ git add hoge

# 変更全てをステージに追加
$ git add .

git commit

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

$ git commit

-mオプションでコミットメッセージつけることができる

# "first commit"とメッセージつけてコミットする
$ git commit -m "first commit"

git status

現在の変更状態を確認するコマンド

$ git status

ワークツリー、ステージの変更されたファイルを確認する際に使う

git diff

変更差分を確認するコマンド

git diff <ファイル名>

# git addする前の変更差分確認
$ git diff

# git addした後の変更差分確認
$ git diff --staged

git addする前=ワークツリーとステージの変更差分
git addした後=ステージとリポジトリの変更差分

git log

変更履歴を確認するコマンド

$ git log
#  commitのハッシュ値(IDみたいなもの)、作成者、日時、コミットメッセージ表示される
オプション 内容
--oneline 一行で表示する
-p ファイルの変更差分を表示する
-n <コミット数> 表示するコミット数を制限する
# 一行で表示する
$ git log --oneline

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

# 最新から三つ目までのコミット表示する
$ git log -n 3

 ## git rm
ファイルの記録を削除するコマンド

git rm <ファイル名>

# hoge.htmlを削除する
$ git rm hoge.html

# ディレクトリ削除する場合 -rオプション
$ git rm -r <ディレクトリ名>

# ワークツリーにファイル残して、gitの記録から削除したい時
$ git rm --cached <ファイル名>

git mv

ファイルの移動を記録するコマンド

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

# hoge.html→hoge2.htmlにファイル名変更する
$ git mv hoge.html hoge2.html

git push

リモートリポジトリ(GitHub)へ送信するコマンド

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

$ git push origin master

ローカルリポジトリの内容をリモートリポジトリに送ることをプッシュという

変更を元に戻すコマンド

次はファイルやディレクトリなどの変更を元に戻すコマンド書いていきます。

git checkout --

ファイルへの変更を取り消すコマンド

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

# hoge.htmlの変更取り消す
$ git checkout -- hoge.html

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

git reset HEAD

ステージした変更を取り消すコマンド

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

# ステージしたhoge.htmlの変更取り消す
$ git reset HEAD hoge.html

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

変更内容をステージから取り消すだけなのでワークツリーのファイルには影響がない

git commit --amend

直前のコミットをやり直すコマンド

$ git commit --amend

pushしたコミットはやり直しNG

GitHubとのやり取りするコマンド

次はGitHubとのやり取りに関するコマンドです。

git remote add

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

git remote add origin <URL>

$ git remote add origin https://github.com/user/hoge.git

originというショートカットを使うことで次からoriginという名前リモートリポジトリから習得したり、アップしたりできるようになる

git remote

リモートリポジトリの情報を表示するコマンド

$ git remote

# URLも表示する
$ git remote -v

git fetch

リモートから情報を取得するコマンド

git fetch <リモート名>

# originの情報取得する(フェッチ)
$ 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より詳しい情報を表示する
・fetchとpushのURL
・リモートブランチ
・git pullの挙動
・git pushの挙動

git remote rename

リモート名変更するコマンド

git remote rename <旧リモート名> <新リモート名>

$ git remote rename hoge new_hoge

git remote rm

リモート削除するコマンド

git remote rm <リモート名>

$ git remote rm hoge

ブランチとマージのコマンド

次はブランチとマージに関するコマンドです。

git branch

ブランチを新規追加する・一覧表示する・ブランチ名変更する・削除するコマンド

新規追加
git branch <ブランチ名>

$ git branch hoge

一覧表示
git branch

$ git branch

# 全てのブランチを表示する
$ git branch -a

ブランチ名変更
git branch -m <ブランチ名>

$ git branch -m hoge

現在自分が作業しているブランチの名前を変更する

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

$ git branch -d hoge 

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

git checkout

上でもgit checkout -- ファイルの変更を取り消すコマンドで出てきましたが
ここではブランチを切り替えるコマンドです。

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

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

git merge

変更履歴をマージ(統合)するコマンド

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

$ git merge origin/master

git rebase

履歴を整えた形で変更を統合する

git rebase <ブランチ名>

$ git rebase hoge

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

$ git rebase -i HEAD~3
pick ge689je ファイル1修正
pick oi2313o README修正
pick 457ir09 ヘッダー修正

# やり直したいコミットをeditに変更
edit ge689je ファイル1修正
pick oi2313o README修正
pick 457ir09 ヘッダー修正

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

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

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

$ git rebase -i HEAD~3
pick ge689je ファイル1修正
pick oi2313o README修正
pick 457ir09 ヘッダー修正

# ①457ir09のコミット 削除する
# ②oi2313oを先に適応する
pick oi2313o README修正
edit ge689je ファイル1修正    

コミットをまとめる

$ git rebase -i HEAD~3
pick ge689je ファイル1修正
pick oi2313o README修正
pick 457ir09 ヘッダー修正

# コミット一つにまとめる
pick ge689je ファイル1修正
squash oi2313o README修正
squash 457ir09 ヘッダー修正

squashを指定することで直前のコミットと一つにする

git pull --rebase

プルのリベース型
マージコミット残さずGitHubの内容だけ取得したい時に使う

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

$ git pull --rebase origin master

スタッシュのコマンド

最後にスタッシュのコマンドについて書いていきます。

git stash

作業を一時避難するコマンド

$ git stash

git stash list

避難している作業を確認するコマンド

$ git stash list

## git stash apply
避難した作業を復元するコマンド

$ git stash apply

# ステージの状況も復元する
$ git stash apply --index

# 特定の作業を復元する
$ git stash apply stash@{1}

git stash drop

避難した作業を削除するコマンド

$ git stash drop

# 特定の作業を削除する
$ git stash drop stash@{1}

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

おわりに

git, GitHubは必ず使うものなのでコマンドを繰り返し使い、しっかり覚えていきたいと思います。

もし間違いや改善点などありましたらご指摘お願いいたします。

1
1
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
1
1