私は誰?
・大学時代は非情報系の理系
・新卒で営業職3年
・1年半前に未経験からエンジニア転職
・サーバーサイドの案件が多め
自分と同じように、未経験からエンジニアを目指している方に向けて
「最低限これだけは知っておいたら実務を乗り切れるよ!」
ということを伝えるための記事です。
対象の読者
- 未経験からエンジニアを目指している方
- エンジニアになりたてホヤホヤの方
- gitにいまいち自信のない方
本記事で得られるもの
- 未経験から実務に入った時に、何とか乗り切れるだけのgitコマンド
- 実務に入るまでにどれくらいのgitを知っておくべきかの目安
- よく使うgitコマンドが並んでいるので、この記事からコピペできる
本記事は、「gitの概念を理解する記事」ではなく、「初心者向けのgitのチートシート」ですので悪しからず。
そもそもgitとは?
Gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。
(引用:wikipedia)
です。
チームで開発する時には必須と言っても過言ではありません。
実務に携わるまでは全然要らないのに、実務に入ったらいきなり要るやつです。
ちなみに
「git hub」というのは、gitを利用した「サービス」の1つです。
「git」が抽象的な仕組みの名前で、「git hub」が具体的なサービスの名前になります。
絶対使うgitコマンド
最初に手元にとってくる
$ git clone <URL>
リモートの特定のブランチを手元にとってくる
$ git fetch origin <branch名>
$ git checkout <branch名>
ブランチの切り替え
$ git checkout <branch名>
ブランチの新規作成+切り替え
$ git checkout -b <branch名>
# ブランチの新規作成だけしたい時
$ git branch <branch名>
現在の変更を全てコミットする
$ git add . (一部のファイルのみの時は git add <file名> とする)
$ git commit -m "コミットメッセージ"
ブランチをリモートにプッシュする
$ git push origin <branch名>
別ブランチのコミットをコピーする
$ git cherry-pick <コミットID>
# cherry-pickしたもののconflictして、やっぱ辞めたいとき
$ git cherry-pick --abort
使えたら便利なgitコマンド
コミットログを確認する
$ git log
直前のコミットを上書きする(commitしたもののtypoに気付いた時など)
$ git commit --amend
コミットをまとめる
コミットの粒度をどうするかはプロジェクトによってですが、細かくしすぎたコミットをまとめる方法。
# 直前2つのコミットをまとめる
$ git rebase -i HEAD^^
# 直前4つのコミットをまとめる
$ git rebase -i HEAD~4
下記のようなやつが出てくるので、単にまとめたいだけであれば、pick→squashと書き換える。
pick 23e47bc5 修正
pick feabc394 新機能実装
コミット間の差分を確認する
# 現在との差
$ git diff <コミットID>
# 任意の2つのコミットの差
$ git diff <コミットID①> <コミットID②>
タグを打つ
切り戻しをするとき用などに、タグ(目印)を打っておく。
$ git tag <tag名>
# リモートへのプッシュ
$ git push origin <tag名>
コミットをなかったことにする
# 直前のコミットをなかったことにする(変更をステージングにしたところに戻る)
$ git reset --soft HEAD^
# 直前のコミットの変更をまるごと消し去る
$ git reset --hard HEAD^
修正を一旦置いときたい
一旦置いとくのが長くなりそうな時は、一度commitしてしまって、後にreset --softして修正を続ける方が好き。
$ git stash
# 直前にstashしたものを元に戻す
$ git stash apply stash@{0}
リモートブランチを強制的に上書きする
恥ずかしいミスを覆い隠す裏技
※大事なbranchでやると大事故の危険があります。(※各自の自己責任でお願いします)
$ git push -f origin <branch名>
後書き
当記事では、実務未経験の方に「これくらい使えたら何とかなるという目安」を提供するために、
「gitの仕組み」や、「それぞれのコマンドの説明」は、ほとんどすっ飛ばしました。
個人的には、gitの勉強はそれほど優先度高くなく、
最低限のポイントだけつかんで、あとは実務を通して慣れていけばいいと思います。
本記事が、少しでも未経験からエンジニアを目指す方の一助となれば幸いです。
最後に少しだけ宣伝を、、
弊社は未経験者でもやる気と能力さえあれば、グングン成長できる環境です!
興味ある人はこちらより。