Gitのコマンド多すぎ!
「あれ、あの時のGitのコマンドってなんだっけ?」と思ったときにとりあえず検索してみるとすごい量のGitのコマンドが出てくる。
結局コマンドを忘れるたびに毎回検索して自分がほしいコマンドを探さないといけない。そこで実際に開発する流れに沿って。Gitのコマンドを整理してみたいと思う。わかりづらくならないように、ここには必要最低限のコマンドだけ記載したい。
あくまで自分が開発する時の一例なので、参考程度に見て下さい。
前提の環境
- 開発用ブランチはorigin/develop
- 自分が新しい機能の開発を頼まれたとする。
開発にとりかかるまで
まずはissue化
開発する内容をGitHubのissueに落としこむ。自分はZenHubという拡張を入れて、issueがTrelloみたいにボードで分かりやすく管理できるようにした。
issueに書く内容としては
- 追加する機能の詳細
- 開発完了予定日
- 開発後にテストする内容
などを書きましょう。
ブランチを作成
git checkout -b feature/issue-XX origin/develop
これでリモートにあるブランチorigin/developをもとに、ローカルに新しいブランチを作成してそのブランチに切り替えることができる。
なお、issue-XXの部分には上記で作成したissueの番号を入れるようにしている。
開発している最中
addする
git add .
これで今回の変更分を全てaddできます。
つまり、[ワーキングツリー]→[インデックス]
commitする
git commit
これで上記でaddしたものをコミットします。このコマンドのあと、コミットメッセージを書くことができます。
つまり、[インデックス]→[ローカルにあるfeature/issue-XX]
git config --global core.editor 'vim -c "set fenc=utf-8"'
ちなみに、これでコミットメッセージを編集するエディターをnanoからvimへ変更できます。
開発が終わったら
Pushする
git push origin feature/issue-XX
これであなたのローカルでの変更がリモートのorigin/feature-issue-XXに反映されました。
つまり、[ローカルにあるfeature/issue-XX]→[リモートにあるorigin/feature/issue-XX]
Pull Requestを送る。
これはGitHubのリポジトリのページから。今回なら「feature/issue-XXをdevelopからpullしてください」というリクエストを送る。コートレビューをしてもらい、OKならMergeしてもらう。
Branchを削除
不要になったBranchは消しておこう。
git branch -d feature/issue-XX
ちなみに今のBranchの一覧を見たい場合は
git branch -a
とすればOK
現在の状況を確認
git status
これで今自分addしてないファイルや、addしたけどコミットしてないファイルの一覧が確認できます。
今ままでのコミット状況を確認
git log
これで今までのコミット履歴を確認できます。
まとめ
Gitでミスをすると、他の人に変更を上書きしてしまったり、リモートのブランチを汚してしまうこともある。(自分はそれで上司にとても迷惑をかけたことがある…)
しっかり使いこなして、楽しい共同開発を!
細かいコマンドについてはその都度調べていこうと思う。