最終更新日: 2026-07-24
TOP(About this memo)) > 一覧(Git) > ローカルの変更管理
git statusOn branch test
Your branch is up to date with 'origin/test'.
....
git stashで退避する。git status --ignored
git diff --statgit diff HEAD..<リモート名>/<ブランチ名>
git diff <コミットID1>..<コミットID2>--name-onlyでファイル名のみ表示。git diff <コミットID1> <コミットID2> <ファイル名>でファイルを指定。git diff <ブランチ名> <ブランチ名>でも比較可能。
git diff develop-ga origin/staging)。stagingをチェックアウトしていない場合、git diff develop-ga stagingのようにローカルブランチ名で指定するとエラーになるはず。git diff HEAD # git diff だけでも同じ
git diff HEAD --stat # 詳細ではなく、どの程度変更があったかを見る
git diff HEAD <branch> # 他のブランチと比較(例:git diff HEAD master --stat)
git diff origin/test --stat
git commit --amend # コミットメッセージ入力のためにエディタが開く
git commit --amend -m "fugafuga" # 直前のコミットのメッセージを修正
git add済みの内容があれば、それも一緒にコミットされる(?)。git reset HEAD
-v(--verbose):メッセージを入力する際に下部に差分を表示してくれる(この部分および先頭に#がある行はコミットされない)。-aを付けるとaddを省略してcommitできる。git add .
git status # 確認
git commit -v
git commit -m "ああああ" # ヘッドメッセージだけ書く
git commit -a -m "あああああ" # addを省略
git add
git addによってGitのコミット対象(ステージ)にする(インデックスに登録する)。
git add Program01.java、git add *.java、git add dir/*.javagit statusで見ると、「Changes to be committed(変更対象)」「Untracked files(コミット対象外)」が確認できる。addでコミットされないので、ファイルを消した場合はgit rm <ファイル名>のようにするか、git add -uとする(-uは変更があったファイルのみ更新するオプション。新規追加したファイルはaddされない)。git commit -a <ファイル名>とするとaddも一緒にやってくれる。git commit --author='ユーザー名' -m "..."という方法もあるが、コミッターとauthorは別のものらしく、上記だと.git内に設定されているコミッター情報もGitHub上に一緒に出てきてしまう。以下の方法の方がよい(?)。git -c user.name='xxxxxx' -c user.email='<メールアドレス>' commit -m '...'
[fix]削除フラグが更新されない不具合の修正
refs #110 更新SQLの対象カラムに削除フラグが含まれていなかったため追加しました。
(refs #110はRedmineのチケット番号)
# 初めてのコミット(Initial Commit)
# バージョンタグ(Version Tag)
# 新機能(New Feature)
# バグ修正(Bugfix)
# リファクタリング(Refactoring)
# ドキュメント(Documentation)
# デザインUI/UX(Accessibility)
# パフォーマンス(Performance)
# ツール(Tooling)
# テスト(Tests)
# 非推奨追加(Deprecation)
# 削除(Removal)
# WIP(Work In Progress)
enhance # 機能強化(improve)
refactoring # 外部的振る舞いを保つ
remake # 機能やアートワークを作り変える
experiment # 実験的な試み
bug, bugfix # fix
documentation
git update-ref -d HEAD
git rm (-r) -f --cached .
git reset HEAD(git reset --mixed HEAD)でも良いが、初回コミット前はHEADが何も参照していないためエラーになる。git rm --cached <ファイルパス>
git reset HEAD <ファイルパス>
git -f rm <ファイルパス>
-fは不要。git rm --cached <ファイルパス> # インデックスからのみ削除(ファイル自体は残す)
git rm -f <ファイルパス> # ファイルごと削除(例:git rm -f path/to/.DS_Store)
git rm -r --cached <フォルダ> # フォルダ丸ごとインデックスから削除
.idea
.DS_Store
db.ini
.gitignoreを編集git rm (-r) --cached <ignoreしたいファイル>git reset --soft HEAD^
git reset --hard <ハッシュ値>
git reset --hard HEAD # 全部戻るので注意
--soft:HEADのみ--mixed:HEAD/インデックス--hard:HEAD/インデックス/ワークツリーgit reset origin/xxx
git reset --hardをしてもuntrackedなファイルは残る。削除するには以下を使う。git clean -fdx
git checkout HEAD <filepath>
git checkout <hash> <filepath>
git checkoutの機能は以下の2つ(別の機能なので注意)。
git checkout <コミット指定> -- <ファイル名>
--は省略可能。git checkout HEAD -- masterのように「master」というファイルを作業ツリーに展開したい場合などのために、この文法になっていると思われる(?)。そのような状況はまずないだろう。6f87gs1のindex.phpを作業ツリーに展開git checkout 6f87gs1 index.php
git checkout HEAD index.php
# 現在のブランチの先頭から、new-feature ブランチを作成してチェックアウト
git checkout -b new-feature
# masterを起点に、favorite-featureブランチを作成してチェックアウト
git checkout -b favorite-feature master
git branch <ブランチ名>とgit checkout <ブランチ名>を短縮して行っているコマンド。# devブランチがすでに存在しても、強制的にmasterに合わせてチェックアウトする
git checkout -B dev master
# インデックスと作業ツリーの変更を破棄して、強制的にチェックアウトする
git checkout -f master
stashというコマンドもある。git stash # save は省略可能
git statusで、変更したファイルがなくなっていることがわかる。git stash -u
git stash save -uという書き方だったが、-uの位置が変わったらしい(?)。git stash listでstashした一覧が見られる。<stash名>: WIP on <stashを行ったブランチ名>: <ハッシュ> <コミットコメント>という形式で出る(ハッシュ・コミットコメントはstashを行った時点のHEADのもの)。git stash list -pで変更内容の詳細が見られる(git logのオプションが使える)。git stash show <stash名>で各変更が見られる。git stash apply stash@{0}
git stash pop stash@{0} # 復活&listから削除
git stash drop <消したいstash名>
git stash show <適用したstash名> -p | git apply -R # -pでパッチ形式出力、-Rは逆適用
git log -1 --stat
git log --oneline -2
git log -p css/style.css
git log --oneline # ワンラインで表示。ハッシュ値も短縮表示される(?)。git diffやgit showと組み合わせて使うと良さそう(?)。
git log --graph # グラフ表示
git log --oneline --graph # ワンライン+アスキーグラフ表示
git log -p -2 # -p: 詳細のdiff
git log --name-status # 変更したファイルを表示
git log --since="4 days ago" --until="2015/01/22"
git log --author='xxxxxx'
git log origin/master --oneline -2
git showで開始、qで終了。現在のブランチで一つ前のコミットとの比較を表示する。git show <ハッシュ値>
git show <ハッシュ値>:<file-path>
git show HEAD # 最後のコミット
git show HEAD^ # 最後の1つ前
git show HEAD^^ # 最後の2つ前
git show HEAD~2 # 最後の2つ前(同じ意味)
git clean -ndx:ドライランgit clean -fdx:すべて削除(新規作成ファイルも消えるので注意)git clean -fX:ignoreファイルのみ削除git clean -hで確認。