#はじめに
今回初めてGitHubを使用し、オリジナルアプリの開発を進めるにあたって自分が起こしてしまった失敗についてまとめてみました。
#何を失敗したか?
オリジナルアプリを開発するにあたってGitHubを利用して進めることになり、Gitの基本的なadd,commit,push,pullといった操作を学んだ上で、GitHubの使い方などを教えていただきました。そしてローカルにで自分が作成したものをプルリクエストして確認してもらい開発を進めていくはずでした。しかし作業に入ってまず僕がしたのは開発順序を明確に考えずに出来るところから、ガツガツとコードを書いてプルリクエストを送りまくるということ。これをしてしまったことによって、GitHub上での管理が把握できなくなってしまった。。。
#起こしてしまった失敗の詳細
- 他のブランチを切るときに、Masterから作成されていない。例えば、Masterから
user_function
とhome_function
の2つのブランチがあった時にhome_function
をuser_function
から作成していたり。 - 別のブランチを作成し、開発を進める時に、移る前にチェンジファイルを空にできていないまま。そのため移行先にもそのファイルがついてしまっていた。
- 自然な現象なのにブランチを切り替えた際にローカルでファイルが消えたりしていると感じ勝手に焦っていた。
- コミットする際には、そのブランチに関係のないファイルやコードが含まれている。(確認する側が混乱してしまう。)
- 各ファイルの修正、追加、削除などをローカルだけでなくGitHub上でも操作していた。
- GitHub上でファイルを削除したりしていた
#対策
- 各ファイルの修正、追加、削除などは全てローカルで行うこと。(例:pull request後修正したい場合、ローカルで修正し再度commitメッセージを書き、pushする)
- GitHub上でファイルを削除したりしては絶対いけない。
- コミットする際には、そのブランチに関係のあるものだけにすること。(メンター側が確認するときに困る)
- 不要なファイルはそもそもコミットしないこと。(例:DS.storeファイルなど)
- 今回は原則として1つの機能に対して、1ブランチ1プルリクエストとする
- ブランチを作成するときはMasterから作ること。(悪い例:Master→homeブランチとある場合、homeからブランチを切るのではなく、Masterに戻ってから別のブランチを切る。)
- 別のブランチを作成し、開発を進める際は、移る前にチェンジファイルを空にしてからにすること。でないと移行先にもそのファイルがついてきてしまう。(移行前のブランチでcommitするかそのファイル自体を削除するかで対応する)もう一つのやり方としては1度
commit to ブランチ名
を押して仮に保存しておくやり方。こちらは忘れがないように注意! - ブランチはできるだけ細かく切ることを意識する(少ないと、1つの量が膨大になるから。)
- ローカルで開発している際にファイルが消えたりしていると感じるのは自然な現象である(例:Masterから「ユーザー、ポスト」という2つのブランチがあったとしてMasterには3ファイル、ユーザーには10ファイルあったとした場合、ユーザーブランチからポストブランチに切り替えるとMasterにある3ファイルだけなのでローカルに表示させるのはそのファイルだけであるので焦らないこと。)
#今回の学び、反省
開発が始まり、開発の順序を明確に考えずに作業に取り掛かった結果、GitHub上での管理が把握できなくなってしまった。そのため同時に開発を進めていくはずだったメンターさんには多大な迷惑をかけてしまいアプリ自体最初から作り直しとなった。完全な個人プレーだった。見る側の人のことを全く考えずただただ自分ができることからまとめて開発するといった状態だった。(例:コントローラーを3つまとめて作成したり、機能ごとに開発できていない。)また把握できなくなり、エラー文が発生した際にも、全文コピペといったことをしていた。これは完全に思考停止で伸びないし、コピーしてググるなら、関係のありそうな1文だけに絞ってみたりなど工夫が一切ない。読むクセが全くついていないこの行動で改めて感じた。また相談不足で勝手に進めていっていた部分も多かったため、当たり前だが、わからないときは(実行する前に)相談すること。ただわかりきった質問はよくない。この失敗を糧にして、また開発を進め、努力していきたいと思った。