monotonica Engimono Notebook and more

忘れがちなGitコマンドまとめ

何度も調べているGitコマンドを自分用にまとめておく。(随時アップデート)

ファイルの変更を部分的にステージングする

$ git add -p <file名>

追加時にオプション-pを付ける。 するとそれぞれの変更部分に対して以下のような選択肢が発生する。

(1/1) Stage this hunk [y,n,q,a,d,e,?]?
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
e - manually edit the current hunk
? - print help

y, n, eあたりを活用する。 e (= edit) では終わりの空行を含めるとエラーになるので、空行は残さない。

参考: git add -p 使ってますか? | Qiita

ステージングした変更を表示する

$ git diff --cached

ファイルに加えた変更をステージングしてしまうと、その変更はgit diffでは見られなくなる。 ステージングした変更を見るためにはオプション--cachedを付ける。

参考: https://gist.github.com/kurotaky/5483492

すべてのファイルをステージングする

$ git add -A

引数は不要。 .gitignoreで指定したファイルは無視される。

If no <pathspec> is given when -A option is used, all files in the entire working tree are updated (old versions of Git used to limit the update to the current directory and its subdirectories).

参考: https://git-scm.com/docs/git-add

ファイルだけチェックアウトする

git checkout コミットID file_path

git checkout コミットIDの後ろにfile_pathをさらに付けることで、ファイルだけチェックアウトできる。

参考: git checkoutで特定のファイルをチェックアウトする | Qiita

ステージングを取り消す

git restore --staged <file>

git statusしたときに使い方が表示される。

参考: https://git-scm.com/docs/git-restore

変更を部分的にstashする

git stash -p

git add -pと同様に、それぞれのhunkに対してstashするかどうかを選択できる。

参考: https://git-scm.com/docs/git-stash

© hinagata. Last modified: March 16, 2023. Website built with Franklin.jl and the Julia programming language. 免責事項