はじめに

7日目のまなみんです。関東で主にWebサービス、Webデザイン、2Dゲームコースのメンターを担当しています。

こちらのadvent calendar、蒼々たるメンターのみなさまの名前が連なっておりかなりビビっているのですが、最近こちらの記事を読み、勇気を出して初めてのキータを書いてみようと思いました!

「熟練してから記事を書こう」と思っても、その頃には記事を書く必要性を感じなくなっていたりする。
むしろ「初心者のつまづき」こそ大事で。これは熟練してしまうと、逆に思い出せなる部分だ。
「初心者のうちに書いておいた方が良いこと」もたくさんある。
この世界では、多くの分野において「初心者」の割合のほうが、はるかに大きいのだから。
多くの人の目を引くのは、むしろ「初心者向けの記事」だったりする。

拝啓 本当は Qiita を書きたいのに、まだ迷っているあなたへ。 - Qiita

ではでは、至らぬ点も多いかとは思いますが、書いていきますね!

Git

様々のコースの方に共通して役立つかと思い、今回はGitをテーマにしました^^

チーム開発において避けては通れないGit、、、!
Gitの記事はキータにバンバン上がっているものの、専門用語だらけで初心者的にはわからなかったり、使わないコマンドがたくさん書いてあったり、逆に説明が足りなかったりと、初心者時代にはかなりGitで苦戦していました。
そこで今回、自分が一年半ほどエンジニアのインターンをしていて習ってきた、よく使うコマンドをわかりやすく簡潔に説明していきますね〜!!
Gitの基本的なことは既に知っている方向けです🙆

完全に初心者の方はぜひこちらを読んでみてください↓
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ

まずは基本

最小限これだけわかればGitHubにあげれるぞと言うコマンドです。
以下の場合masterブランチに変更を適用する際に必要なコマンド3つです。
addとcommitとpushの3つセットで覚えてください。

git add .       
git commit -m '(変更の内容をコミットごとに記載)' 
git push origin master

git add .で変更したファイルを全てステージングにあげ、
git commit -m 'コメント' では-mとオプションを追加することでコマンド一行でコミット+コミットへのメッセージをつけることができます。
git push origin masterではマスターブランチにpushし、変更を反映させていますが、ブランチにいる際はgit push origin ブランチ名でpushしてください

コミットメッセージは誰が見ても変更がわかりやすいよう、好ましい書き方があるのでこちらの記事も参考にしてみてください。
gitにおけるコミットログ/メッセージ例文集100

※コミット前の確認

変なファイルが変更されていないかをコミット前に確認

git diff

前回までのコミット履歴を確認

git log --oneline

今どのファイルがステージングにいるのか等のgitの状況を確認

git status

エラーが起きた場合やコミット前にミスがないか確認する際にそれぞれよく使います。必要に応じて使い分けてみてください。

pushする際にエラーが出た

masterに移動して

git pull

これでmasterにリモートブランチがpullされるので、その後さらに対象ブランチに移動してもう一度pullしてください

ブランチを切る時

チーム開発時やインターン先などではタスクごとにブランチを切って、マスターにマージすることが通例です。

git checkout -b 'ブランチ名'
git checkout '既に存在するブランチ名'

git checkout -b 'ブランチ名'でまずブランチを新しく命名し、ブランチに移動することができます。masterに戻ったり他のブランチに移動する際はgit checkout '既に存在するブランチ名'です。

git branch

今どこのブランチにいるのかわからない際にはgit branchで確認します。

ちなみにgit checkout -で直前までいたブランチにすぐ行けるのでよく使います。

直前のコミットを消したい

間違えてコミットしてしまうこと、あるあるかと思います。そんな時はgit resetです。

コミットとともにローカルのフォルダでの変更も消したい時(完全に消したい時)

git reset --hard HEAD^

コミット自体だけ消したい場合(ローカルでの変更やステージングはそのまま)

git reset --soft HEAD^

なおHEAD~3のように数字を指定することで何個前のコミットかを指定することができます。これだと3つ前のコミットを消すことができます。

直前のコミットメッセージを変えたい!

git commit --amend

今コミットしたくないけどブランチを移動したい

このコマンドでコミットを保留できます。

git stash

以下のコマンドで保留にした変更分を別のブランチにも適用できます。

git stash pop

なおgit stash listでstashしてきたものを見ることができます。

別のブランチに変更を適用したい

git cherry-pick コミットID

コミットIDはgit log --onelineから見ることができます。

直前のコミットを結合させたい

私はコードレビューをしてもらう際に、不必要なコミットをrebaseで結合させていました。
コミットは(できれば)エラーのない状態で機能ごとに細かく行うものですが、たまに無駄コミットをしてしまいませんか??以下のコマンドで結合することができます。

git rebase -i HEAD~2

このコマンドだと直前から2つ前のコミットを編集できます。

すると以下のような画面が開くので

スクリーンショット 2017-12-07 午後5.36.14.png

pickの部分をvimコマンドを使って消し、pickをsに書き換え(上記の画像のsquashの部分を参照しています)、vimコマンドのwqで閉じるとコミットメッセージを編集できるようになります。
片方のコミットメッセージを消し、vimコマンドのwqで保存した後、普通にpushするとエラーを起こすので以下のようにforce pushします。

git push -f origin ブランチ名 

※force pushは初心者の場合あまり使わない方が好ましいので、masterにはforce pushしない方が良いです。rebase自体が好ましくないと言う意見も多いので参考程度にみてください!

番外編 編集時最低限必要なVimコマンド

記号 意味
i 編集モード
escキー 編集モード終了
wq 保存(w)して出る(q)

その他便利コマンド

行ごとにコミット履歴を見たい

git blame ファイル名

コミットメッセージだけ見たい

git show コミットID

終わりに

まだまだたくさんあるのですが、私がよく使うものは以上になります。(たぶん)
Gitをある程度使えるようになり、チーム開発に(あまり)不自由がなくなりました。いぇ〜〜〜い
また思い出したら追加していきますね〜!この記事が誰かしらのお役に立てれば幸いです🙏 

次の記事はみーたんです!音楽好きのメンターさんで、前に一緒に音楽のお話をした際、とても楽しかったことを覚えています♥わくわくですね!!!