【git初心者】これだけ知っておけば開発がうまくいくコマンド3選!

こんにちは、たくじろう(@takujiro_0529)です。

エアークローゼットに転職してからというもの、常に最新技術の流れの中にいる感じなのですが、最新技術を利用している企業の大半はgitを利用していると思います。

私は今までSVNしか使ったことがなかったので、gitを利用するに事になって少し不安がありました。

バージョン管理の概念的なものはほぼほぼ理解しているのですが、それをgitでどうやって実現していくのかがわかりませんでした。

GUIは使いたくなかったので、CUIで覚えようとは思っていましたが、なんせコマンドが多い。。。

そんな私がこの3ヶ月でgitをある程度使いこなせるようになって、何がよかったか、そしてどんなコマンドをどんなタイミングで利用しているかを書いていこうと思います。

スポンサーリンク




gitのメリット

SVNと違った部分としてよく言われているのが、分散型か中央集権型といわれているのはよく言われているのですが、これの最大のメリットはコミット履歴をきれいに保つことができることです。

理由としては、個人のローカルブランチにコミットできるところで開発を続けることができ、さらにコミット履歴を自由自在に操作することがとても簡単だからです。

コミット履歴をきれいに保つことで、機能を取り除きたいときにさっと消すことができたり、どこのコミットでなんの機能が追加されたのかを一目瞭然にすることができます。

よく使うコマンド

ではgit歴3ヵ月の私が、どのコマンドをどういったタイミングで利用していくのかを紹介していきます。

rebase

rebaseコマンドは使わない人もいるかと思います、私はなるべく利用するようにしています。

使うタイミングは下記のようなpushする前です。
※localのmasterがremoteの最新にしてから行うこと

このようにpushする直前でrebaseをすることでコミット履歴をきれいに保つことができます。
また、masterからブランチを切ったあとでmasterにpushされたコミットとコンフリクトが起きている場合は、rebaseコマンドを実行したタイミングでその旨のメッセージが出力されます。


$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: develop commit 01
Using index info to reconstruct a base tree...
M   sample.tex
Falling back to patching base and 3-way merge...
Auto-merging sample.tex
CONFLICT (content): Merge conflict in sample.tex
error: Failed to merge in the changes.
Patch failed at 0001 develop commit 01
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

ここでしっかり赤字の部分のファイルのコンフリクトを確認し、解消しましょう。

解消後、下の「git rebase --continue」をすることで、rebaseが完了します。

そうすることでremoteにpushすることができるようになります。

reset --soft

これもよく使うのですが、resetはコミットを取り消すことができます。
ただ、--soft」とつけるパターンをよく利用します。

--soft」を使うとコミットは消えるが、そのときに変更した内容は残るといった画期的なコマンドです。
変なコミット履歴を残してしまったときなどに使ってみましょう。

こうすることで、きれいなやりたかったコミットを作り直すことができますね。

cherry-pick

これは単純にコミットを盗んでくることができます。

利用例としては、先程のresetで戻しすぎてしまったときや、他のコミットが今後の開発で必要だから使いたいといったときです。

ここでの注意点は、別のブランチから取得する場合であってもcommitIDだけを指定することで取得できるのと、最後のコミット履歴のあとにくっつくということです。

まとめ

いかがでしたでしょうか。

gitはコミット履歴を操作することがとても簡単にできるコマンドがたくさん揃っています。
ですので、localではどんどんコミットしていって、最後レビューしてもらう前にきれいに整えることで、レビューアーも変更が見やすくなるので、結果的に開発スピードの工場につながると思います。

いろいろな方法がある中の1つの選択肢だと思いますので、自分のやりやすいコミット履歴の作り方を模索していきましょう!

スポンサーリンク

スポンサーリンク



シェアする

  • このエントリーをはてなブックマークに追加

フォローする