こんにちは。浅野です。
最近応援しているアイドルグループのメジャーデビューが決まりました〜〜
いや〜めでたい!
なかなかコンサートやイベントに行きづらいご時世ではありますが、細々と応援していきたいと思います!
さて、今日のテーマは「Git」です。
開発に欠かせないツールで、毎日使っていますが、使いこなせているかと訊かれれば、みぞおちにワンパンを食らったかのごとく、「ゔ…」となってしまいます。
そんな感じなので、もっといろんなGitの使い方を教えてもらいたい〜と思い、とりあえず話のきっかけを作るために、私が便利だな〜と思っているコマンドたちについて書いていこうと思います。
内容としては、以前プロジェクト内で共有してもらったものや、自分で調べて使えるな〜と思ったもの、よく使うのに忘れてしまうコマンドなどを備忘録という目的も兼ねて、載せていきます。
git add -p
これは教えてもらってから愛用しています。
差分を一つ一つ確認しながら、ステージングエリアにファイルを追加できます。
余計な空白や意図していない変更に気付けるので、大変便利です。
git stash -p
stash
も一つ一つ確認しながらできるらしい。
特定のものだけ退避できるので、複数の作業をしていて、ブランチを間違えた場合などに使えそうです。
ただ実行するとめちゃめちゃ遅い(私だけ?)
git commit --amend
直前のコミットを変更できるコマンド。
私はgit commit -m
で、コミットメッセージを書いている途中にも関わらず、勢い余ってEnterキーを押してしまうことがあるのですが、このコマンドのおかげで、そしらぬ顔で作業が継続できます。
git rebase -i コミットID
こちらもコミットを変更できるコマンドですが、2つ以上前のコミットにも手を加えることができます。
私は、多くなりすぎたコミットログをまとめるために使ったりしています。
あとはあまりないかもしれませんが、CommitterやAuthorを変更することもできます。
注意点としては、指定したコミットは含まれず、次のコミットからが対象になります。
git reset HEAD git reset HEAD ファイルパス # 特定のファイルを指定する場合
これは、「私〜〜いい加減覚えてくれ〜〜」という思いをこめて載せました。
git add
したものを取り消せます。
reset
と聞くと、どうしてもコミット済みのものに対して行うというイメージがついており、git add
を取り消すことと結びつかず、毎度忘れてしまいます。
HEADは「現在のブランチの最新のコミットの状態」で、そこまで戻したいんだからreset
で良い。
よく考えれば分かりそう…
git checkout リモートブランチ名
git checkout -b ローカルブランチ名 リモートブランチ名
としなくても、リモートブランチをローカルに持ってくることができます。
記述が少なくて楽チンですね♪
なお事前にgit fetch
が必要です。
git checkout コミットid ファイルパス
特定のファイルを特定のコミットの状態まで戻してくれるコマンド。
checkout
ってブランチを切り替えるだけではないんですね。
以前、文字コードの影響で意図せず発生してしまった差分の取り消し方が分からず、困り果てていたのですが、その状況を救ってくれた恩人コマンドです。
最後に、コマンドではないですが、Gitの使い方として、私は、SSHキーのパスフレーズを打たないとgit push
できないように設定しています。
(これはGitの機能ではないですが…)
一瞬ですが、git push
前に立ち止まって冷静に考えることができるので、安心感があります。
さて、いくつか書き連ねましたが、まだまだ知らない便利なコマンドや、より良い使い方が山ほどあるんだろうな〜と思います。
そういうのをたくさん吸収して、快適なGitライフを送りたいです。
そんなわけで、「このコマンド便利だよ」、「こんな使い方おすすめだよ」というのがあれば、ぜひ教えてください。
では今回はこの辺で!