この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
addやcommitなどのメジャーなgitコマンドは知っていたが、gitを使用した開発で初めてお世話になったコマンドがあったので、紹介したいと思います。
作業中に別の作業に変更する
優先度の高い仕事が手元から離れて優先度が低い作業に取り掛かっている時に、優先度の高い仕事が再度自分の手元に戻ってきた場合にstashコマンドが役に立ちます。
stashコマンドとは、現在作業しているブランチの作業内容を一時的に保存することや保存されているstashを取得することができます。以下で自分がよく使用したコマンドの一部を紹介したいと思います。
変更内容の保存git stash
保存されている中で最新のstashを取り出すgit stash pop
指定したstashを取り出すには、popの後ろにstash@{0}
と指定する。0の所は、stashの番号を入力する。
保存されているstashの一覧表示git stash list
保存されているstashのファイルを確認git stash show stash@{0}
保存されているstashの全削除git stash drop
一部のstashのみ削除する場合は、dropの後ろにstash@{0}
と指定する。
add,commitの取り消し
自分がadd,commitの取り消しを初めて行う際に、変更内容まで消えてしまうのではないかと不安になった為、まとめました。
addの取り消しgit reset HEAD 「取り消すファイル名」
こちらのコマンドは、変更内容はそのままでaddされた状態のみ取り消します。
最新のcommitの取り消しgit reset --soft HEAD^
こちらのコマンドは、最新のコミットの取り消しを行います。変更内容はそのままです。今回は、オプションに--soft
を使用していますが、--hard
を使用すると変更内容まで取り消してしますので注意が必要です。
ファイルの変更内容の取り消し
git status
コマンドを使用すると、作業しているブランチの変更ファイル一覧が表示されるのですが、その中には変更内容に必要ないファイルがあることがあります。このような場合は、git checkout 「変更内容を取り消すファイル名」
コマンドを使用するとファイルが変更前の状態になります。
gitのgrepコマンド
grepコマンドは、ファイルの中の文字列を検索する場合によく使用します。先輩に言われるまでLinuxのgrepコマンドを使用していたのですが、gitにもgrepコマンドがあるということでgitのgrepを使用してみました。
linuxのgrepコマンド grep -r 「検索する文字列」 「探すディレクトリ」
gitのgrepコマンド git grep 「検索する文字列」
こちらの2つのコマンドを調べた結果、gitのgrepには、メリット・デメリットがあります。
- メリット gitのgrepはリポジトリ以外を検索しない為、linuxのgrepよりも速く見つけることができる。
- デメリット gitのgrepはリポジトリの中しか検索対象にならない為、linuxのファイルを確認することができない。また、検索する場合は、リポジトリのディレクトリに移動する必要がある。
まとめ
今回は、自分が知らなかったgitコマンドについてまとめてみました。内容に関しては初心者向けの記事になりましたが、git初心者の方の参考になれば幸いです。