LoginSignup
4
6

More than 3 years have passed since last update.

Gitコマンド【チートシート】

Posted at

「忘れちゃっても実装できる仕組み」を作りたくて、基本的なgitコマンドをまとめました。

今後も長らくお世話になるものだと思うので、自分を含め他の人のお役に立てれば幸いです。

init【リポジトリの準備】

ディレクトリにリポジトリを作成.

$ git init

ベアリポジトリの作成

$ git init --bare

グループ書き込み権限を有効にする.

$ git init --shared

remote 【リモートリポジトリの一覧】

リモートリポジトリの一覧表示

$ git remote

リモートリポジトリの追加

$ git remote add [username] [remote repository PATH]

リモートリポジトリの名前変更

$ git remote rename [remoterepository] [new name]

リモートリポジトリの情報を見る

$ git remote show [remote repository]

リモートリポジトリで排除されたブランチをローカルからも削除

$ git remote prune [remote repository]

fetch 【リモートリポジトリの情報のついかと更新】

リモートリポジトリの最新情報を追加

$ git fetch [remote repository]

リモートリポジトリの削除情報をローカルに更新

$ git fetch --prune

branch【ブランチの操作】

現在のブランチの確認と、新しいブランチを作成

$ git branch &[new branch]

すべてのブランチを確認

$ git branch -a

リモートブランチを確認

$ git branch -r

ブランチを削除

$ git branch -d [branch]

ブランチの名前を変更

$ git branch -m [branch] [new branchname]

他のユーザーのブランチ、自分のブランチを関連付ける

$ git branch --set-upstream [my branch] [other branch]

add 【インデックスに追加・登録する】

ファイルやディレクトリをインデックスに登録.

$ git add [filename]

すべての変更を含むワークツリーの内容をインデックスに追加.

$ git add -A

以前コミットしたことがあるファイルだけインデックスに追加.

$ git add -u

commit【コミットの操作】

インデックスに追加されたファイルをコミット

$ git commit

コミットメッセージを添えてコミット

$ git commit -m “[comment]”

新規を除く変更されたファイルをインデックスに追加してコミット

$ git commit -a

直前のコミットを修正

$ git commit --amend

status ファイルの変更を表示

前回のコミットと比較してどのファイルが変更されたかを表示.

$ git status

log 【コミットログの操作】

コミットログを参照

$ git log

コミットログの先頭7桁のコミットIDを表示

$ git log --oneline

コミットログのHEADの位置を明示

$ git log --decorate

コミットログを縦グラフで表示

$ git log --graph

指定した文字がコミットログに含まれるコミットを表示

$ git log --grep [filter]

diff 【差異を表示】

インデックスとワーキングツリーの差異を表示

$ git diff

HEADとインデックスの差分を表示

$ git diff --cached

コミット間の差異を表示

$ git diff [commit id 1] [commit id 2]

checkout

コミットされた過去のファイルを復元

$ git checkout [commit id] [filename]

ブランチを変更

$ git checkout [branch]

コンフリクトしたときに上方を指定してファイル内容を採用

$ git checkout --ours [filename]

コンフリクトしたときに下方を指定してファイル内容を採用

$ git checkout --theirs [filename]

show 【表示に関する操作】

最新のコミット内容を表示

$ git show

タグを指定してコミット内容を表示

$ git show [tagname]

reset 【やり直しなどの操作】

インデックスを現在のHEADの状態にする

$ git reset [commit id]

インデックスからファイルをアンステージ

$ git reset HEAD [filename]

すべてをコミットIDの状態に戻す

$ git reset --hard [commit id]

git reflogで確認した番号の状態に戻す

$ git reset --hard HEAD@{[number]}

直前の状態に戻す

$ git reset --hard ORIG_HEAD

rm 【ファイルを削除】

ワークツリーとインデックスからファイルを削除

$ git rm [filename]

インデックスのファイルを削除

$ git rm --cached [filename]

mv 【ファイル名を変更】

インデックスとワークツリーに同ファイル存在時、ファイル名を変更

$ git mv [filename 1] [filename 2]

revert / rebase 【コミットの取り消し】

コミットIDのコミットを取り消す

$ git revert [commit id]

rebase

コミットIDから古い順にコミットを表示

  • コミットの行を消すとコミットの取り消し
  • 先頭のpickをほかのものに置き換えるとコミットメッセージなどの編集が可能
$ git rebase -i [commit id]

直前のgit rebaseの編集を中止

$ git rebase --abort

git rebaseの変更を適応

$ git rebase --continue

clone 【リポジトリをコピー】

リポジトリをコピー

$ git clone [repository PATH] [new repository PATH]

push 【リモートリポジトリに変更を書き込む】

リモートリポジトリに変更を書き込む.

$ git push [remote repository PATH] [branch]

リモートリポジトリにすべてのタグをアップロード

$ git push [remote repository] --tags

リモートリポジトリに指定したタグをアップロード

$ git push [remote repository] [tagname]

指定したブランチ,もしくはタグをリモートリポジトリから削除

$ git push [remote repository] :[branch or tagname]

pull

リモートリポジトリの変更を取り込む

$ git pull [remote repository PATH] [branch]

merge 【ブランチ同士をマージ】

現在のブランチをほかのブランチとマージ

$ git merge [branch]

tag

タグの一覧を表示

$ git tag

タグとそのメッセージ[行数指定]の一覧を表示する(行数指定なしの場合1行)

$ git tag -n[number]@

タグを,フィルターをかけて表示する.

$ git tag -l [filter]

現在のコミットIDにタグを関連付けする.

$ git tag [tagname]

コミットIDを指定してタグを関連付けする.

$ git tag [tagname] [commit id]

現在のコミットIDにメッセージ付きのタグを関連付けする.

$ git tag -a [tagname]

指定したタグを削除する.

$ git tag -d [tagname]

stash

現在の状態を保存する.

$ git stash

メッセージ付きで現在の状態を保存する.

$ git stash save “[message]”

保存した状態の一覧を表示する.

$ git stash list

最新の保存状態を復元する.

$ git stash pop

番号を指定して保存状態を復元する.

$ git stash pop stash@{[numbar]}

保存状態をリストに残したまま最新の保存状態を復元する.

$ git stash apply

保存状態をリストに残したまま指定した番号の保存状態を復元する.

$ git stash apply stash@{[number]}

保存状態を削除する.

$ git stash drop stash@{[number]}

保存状態をすべて削除する.

$ git stash clear

reflog

過去にHEADが指していたコミット一覧をを表示する.

$ git reflog

ブランチを指定して過去にHEADが指していたコミット一覧を表示する.

$ git reflog [branch]

cherry-pick

別のブランチのコミットを現在のブランチにコピーする.

$ git cherry-pick [commit id]

config

使用されるリポジトリの設定を表示する.

$ git config -l

ユーザ名の設定.

$ git config --global user.name [username]

メールアドレスの設定.

$ git config --global user.email [email address]

出力結果を色づけする.

$ git config --global color.ui auto

まとめ

テーブルにすべきか、コードにすべきか悩みましたが、とりあえずコピペ出来る校舎にしてみましたがいかがでしょうか。

とりあえず最初は

  1. リモートリポジトリをクローン
  2. ブランチを切って作業
  3. 変更してコミット
  4. コミットメッセージを添えてプッシュ
  5. レビューを受けて修正
  6. マージして1にもどる

という開発の基本的な流れができるようになりましょう!

長文お疲れさまでした!

4
6
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
4
6