はじめに
こちらは最近プログラミングを始めたばかりの初心者の方を対象としています。
Gitコマンドは様々なものがありますが、
学習し始めの頃はとりあえずadd、commit、push、pullやbranch、checkoutなど…
本当に基本的なコマンドしか使用していませんでした。
最初はこれらだけでも十分作業できるので問題なかったんです。
でも今思うと基本的なのに全然活用できていなかったコマンド達があるので3種類ご紹介します!
簡単に説明しているので、詳しい内容に興味を持たれたらぜひ調べてみてください!
1 .git commit --amend (コミット名を修正)
コミット名を間違えてしまった場合の修正コマンドです。
とても簡単に修正できるので、謝ったコミット名を諦めてそのままにしたり、わざわざコミット自体を取り消したりする必要はありません!
例として、"add new file"と言うコミット名を謝って"aad new file"としてしまった場合
$ git commit -m "aad new file"
$ git commit --amend
このコマンドだけで、直前のコミット名を修正できます。
コマンドを打った後、コミット名を変更するエディターが起動するので、編集して保存するだけです!
2 .git stash (addしたくない変更作業を逃がす)
主にブランチを分けて作業をする際に便利です。
例えばメインであるmasterブランチからAというブランチを切って、とあるタスクの作業をしていたとします。
ところが作業途中で、Aブランチで作業していたタスクよりも優先度が高い作業が出てきたとします。
早くまたmasterブランチから違うブランチを切って作業をしなければなりません。
よし!まずはmasterブランチに移動だ!
$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
app/controllers/test.rb
app/views/test.html.slim
Please commit your changes or stash them before you switch branches.
Aborting
エラーが出て、
”変更したファイルがaddとcommitされてないからしてから移動して!”
と怒られます。
ここで、丁寧にaddしてcommitしてももちろん良いです。
しかし中途半端に変更している状態の場合は、”もう少し変更してからコミットしたい!”とか
”むしろちょっといじっただけだしこの変更分残さなくても良いんだけど!” と思う場合があるわけです。
その場合に活躍するのがstashです。
stashは、一時的に変更分を退避させることができます。
もちろん退避させたデータはまた呼び出すこともできますし、不要であれば削除することも出来ます!
では、早速退避させましょう!
$ git stash
はい、これだけです!
この後にgit checkout masterをしてみると、ちゃんと移動できるはずです。
stashしたリストを見たい場合は、
$ git stash list
stash@{0}: WIP on ブランチ名: stash時のコミット名など
stash@{1}: WIP on ブランチ名: stash時のコミット名など
stash@{2}: WIP on ブランチ名: stash時のコミット名など
このように上から最新順に見ることができます。
stashしたデータを戻したければ、
$ git stash apply stash@{0}
これだけです!{}の中には、リストで確認した該当の番号を指定してください。
他にもstashした履歴を消したり、色々なstashコマンドがあるのですがここでは割愛します。
git diff (各ファイルの変更箇所を確認)
git statusはステージング前の状態の変更があったファイル名のみを出力するのに対し、
git diffは変更した各ファイルそれぞれに対して、実際にどこがどう変更されたのかまで確認することができます。
$ git diff
このコマンドを打つだけ!
そうすると、まずは変更のあったファイル名の下に、変更箇所が詳しく表示されるはずです!
+表記が追加した内容
-表記が取り消した内容になります。
git diffは様々なオプションがあり、とても便利なのでぜひ興味ある方は調べてみてください!
さいごに
簡単ではありますが、3種類のコマンドを紹介しました!
基本的だけど、もしかしたら最初は使ってないかもしれないコマンドたちでした!
ぜひ活用してみてください!