Skip to content

About

Git でよく使うコマンドをまとめたチートシートです。日常開発ですぐ参照できるように、実用的なコマンドを中心に簡潔にまとめています。

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Git Command Cheatsheet

Git でよく使うコマンドを、自分用メモとしてまとめています。

GitHub でリポジトリを作った直後にやること

GitHub 側で空のリポジトリを作成しておきます。
このとき、GitHub 側では README や .gitignore を作らないようにします。

プロジェクト配下で以下を実行します。

git init
touch .gitignore
git add .
git commit -m "first commit"
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin main

これでローカルリポジトリをリモートへ反映できます。

ブランチ操作

現在のブランチを確認する

git branch --show-current

新しいブランチを作成する

git branch feature/xxx

ブランチを切り替える

git checkout feature/xxx

ブランチを削除する

git branch -d feature/xxx

削除するブランチ以外にチェックアウトしている必要があります。

ブランチを強制削除する

git branch -D feature/xxx

コンフリクトの解消

コンフリクトが起きたら、まず落ち着いて状況を確認します。

コンフリクトが発生していることを確認する

git status

コンフリクト部分を確認する

対象ファイルを開くと、以下のようなマーカーが入っています。

<<<<<<< HEAD
(自分の変更)
=======
(相手側の変更)
>>>>>>> branch-name
  • <<<<<<< HEAD から ======= までが自分の変更
  • ======= から >>>>>>> までが相手側の変更

内容を確認して必要な形に修正し、マーカーも削除します。 VS Code などのエディタを使うと見やすいです。

修正後にステージングする

git add 修正したファイル名

すべて解消したらコミットする

git commit

エディタが開いたら、必要に応じてメッセージを編集します。

リモートリポジトリの設定

設定済みのリモートを確認する

git remote -v

リモートリポジトリの URL を削除する

git remote remove origin

新しいリモートリポジトリの URL を登録する

git remote add origin リモートリポジトリのURL

.gitignore が反映されない

.gitignore を書いたあとでも、すでに追跡済みのファイルには効かないことがあります。 その場合は一度キャッシュを削除します。

git rm -r --cached .

大きなファイル (zip, mov など) は、できるだけ .gitignore に入れておくと安心です。

ローカルだけ追跡対象から外したい

セキュリティ情報や個人設定など、ローカルだけ変更を無視したい場合に使います。 ただし、対象は すでに Git 管理されているファイル に限られます。

追跡から除外する

git update-index --skip-worktree path/to/file

追跡除外を解除する

git update-index --no-skip-worktree path/to/file

追跡除外中のファイルを確認する

git ls-files -v | grep ^S

または:

git ls-files --others --ignored --exclude-standard

ディレクトリごと除外したい場合

skip-worktree はディレクトリ指定できないため、次のようにします。

find somewhere_dir -type f | while read f; do git update-index --skip-worktree "$f"; done

または、除外したいディレクトリ配下に .gitignore を置く方法も有効です。

過去のコミットに戻りたい

まず履歴を確認します。

git log

戻りたいコミットを見つけたら、そのハッシュでチェックアウトします。

git checkout コミットハッシュ

最後のコミットを取り消す

まだリモートへ push していない場合に使います。

変更内容は残してコミットだけ取り消す

git reset --soft HEAD^

変更内容も破棄して取り消す

git reset --hard HEAD^

誤って push したコミットを取り消す

リモートへ push 済みの場合の取り消し方法です。 共同開発では影響が大きいため、慎重に行います。

強制 push で取り消す

共同作業でない場合は次の方法が使えます。

  1. git reset などでローカルのコミットを戻す
  2. 以下で強制反映する
git push origin ブランチ名 --force

revert で取り消す

履歴を残したまま安全に取り消したい場合はこちらです。

  1. git log で対象コミットを確認する
  2. git revert <commit-hash> を実行する
  3. そのまま push する

コミットメッセージを変更したい

まだ push 前なら修正できます。

git commit --amend

エディタが開いたらメッセージを編集します。

HEAD が宙ぶらりんになったとき

失われたコミットを探す

git reflog

コミット内容を確認する

git show a1b2c3d

コミットを復元する

git checkout <branch>
git cherry-pick <commit-id>

または:

git merge <commit-id>

git cherry-pick は、特定のコミットだけを現在のブランチへ取り込むコマンドです。

stash で一時退避する

コミットせずに、いったん作業内容を退避したいときに使います。

変更内容を退避する

git stash

stash の一覧を見る

git stash list

退避した内容を戻す

git stash pop

特定ファイルの差分を別ブランチと比較する

git diff 別ブランチ名 -- path/to/file

別ブランチ同士の比較もできます。

git diff ブランチA ブランチB -- path/to/file

特定ファイルをコミット間で差分表示する

git diff <commit1> <commit2> -- <file_path>

例:

git diff abc1234 def5678 -- src/main.c

現在の HEAD と比較する場合:

git diff abc1234 -- src/main.c

指定したコミット時点の特定ファイルを書き出す

git show <commit_hash>:<file_path> > filename

git show に渡すパスは、プロジェクトルートからの相対パス を使います。

コミットツリーを見やすく表示する

git log --graph --date=short でも見られますが、エイリアスを追加すると見やすくなります。

git config --global --edit

以下を追記します。

[alias]
lg1 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(auto)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
lg = lg1

その後、以下で表示できます。

git lg
git lg2

特定ファイルを直近で変更した人を調べる

直近 1 件を表示する

git log -1 --pretty=format:"%h %an %ad %s" -- path/to/file

直近 5 件を表示する

git log -n 5 --pretty=format:"%h %an %ad %s" -- path/to/file

リポジトリ全体で過去にコミットした人を一覧表示する

著者名だけを一覧表示する

git log --format='%aN' | sort -u

著者名とメールアドレスを一覧表示する

git log --format='%aN <%aE>' | sort -u

著者ごとのコミット数ランキングを表示する

git shortlog -sne

特定ファイル内の文字列を、いつ・誰が入れたか調べる

git blame -L <開始行>,<終了行> <file>

About

Git でよく使うコマンドをまとめたチートシートです。日常開発ですぐ参照できるように、実用的なコマンドを中心に簡潔にまとめています。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors