はじめに
筆者は元々Gitに対して苦手意識があり、更にターミナル操作がとても苦手でした。
しかし一度CUIベースでGit操作する事でGitHubでのversion管理について理解を深め、苦手意識を克服することができたのでそのTipsを紹介したいと思います!!
想定読者
・普段GitHubを利用してversion管理をしている
・Repositoryにコミット、プッシュぐらいしか行っていない
・SourceTreeしか使ってない
方で
・これからチーム開発に参入する
・コード試験を受ける為Git操作を学びたい
・もう少しGitを深く学びたい
という方向けの記事です。
ですのでGitのダウンロード方法や、そもそもGitとは?やGitとGitHubの違いなどを知りたい方は別の優良記事を読む事をお勧めします。
これを覚えるだけで劇的にGitHub操作ができるようになるTips
・ターミナル操作はまずadd、status、commit、pushの4つだけを理解する!!
・プルリクはMilestoneとIssueをたててから!!
・ブランチについてはbranch、checkout、pullの3つを理解する!!
・コミットにprefixをつけてみよう!!
の4つです!!
これを実践するだけで非常にGitHubでの操作に自信がつきましたので是非これからGitHubの操作について学ばれたい方は実践してみてください!!
以下解説になります。
基本操作4つを理解する
ターミナルにて
gitの管理対象に加える操作です。(インデックスに追加する)
addの後に.を追加する事で変更のあったファイル全て対象に加える事をになります。
ファイルをgit管理の対象にする事でコミットできるようになるので必ずコミットしたいファイルは最初にaddする必要があります。
git add .
add操作で参考になるサイト
またaddを取り消しする事もできます。
Tips: 各取り消し操作はいざと言う時にすごく役立つので”取り消す事ができる”事を知っておくだけですごく精神的に安心できる!!
git reset
その他特定のファイルのみ元に戻したい場合は以下のサイトが役に立ちます。
インデックスの内容を確認する。
(是非初めて使用する方はaddする前後で見比べて見ると良いと思います)
git status
インデックスにある履歴をコミットする。
""の中にコメントを書く事で何をしたのか残す事ができます。"ファイルを追加"などにしがちですが、"何を何の為に追加(変更)したのか"を書くとより親切で良いかと思います。
git commit -m ""
複数行入力したい場合はコミットメッセージが編集できるエディタ(Vim)を起動させてそちらに直接コミット内容を記載する事ができます。
(半角の状態でaを押すと入力できるようになります。入力し終えたらesc押して:wqで保存します。詳しくはVim 操作方法 などでご検索下さい)
git commit
コミット履歴は以下で確認できます。
(是非コミットした後確認してみて下さい。)
git log --oneline
リモートリポジトリへプッシュする。
git push
以上です。
まとめると
インデックスにaddしてstatusで確認してローカルリポジトリーにcommitしてリモートリポジトリー(GitHub)にpushしている
と言う事なので操作方法と共に流れを理解しておくと良いかと思います。
プルリクを出す前に抑えておきたいMilestoneとIssue
プルリクはIssueに対してブランチを切って出します。
ですのでプルリクを出す前にMilestoneとIssueを作成しておくと、より実践的に、更に格段に見やすくなります。
またプルリクが通ってマージする際、同時にIssueも閉じるとより分かりやすいです。
その一連の流れは以下の記事で完璧にまとめられていますので、是非ご覧ください。
ブランチを切ってプルリクを出す3つの操作
※そもそもブランチとは?ついてはこちらのサイトに分かりやすく解説されています。
まず初めにブランチを切る方法です。
git branch -b ブランチ名
ローカルブランチを一覧表示し、現在のbranch名を確認する事ができます。
(確認する際に使用します)
git branch
プルリクを出す
git push origin master
originやmasterについて個人的にすごく参考になった記事を紹介させて頂きますので気になる方は是非一度こちらの記事もご覧ください。
コミットにprefixをつけてよりコミット内容をより見やすくする
prefixとは直訳で"接頭辞"や"接頭語"です。gitではコミットの際、頭共通の接頭をつける事で非常に見やすくなります。
以下筆者が参考にさせて頂いているprefixです。
以下簡単な翻訳
feat: 新機能
fix: バグ修正
docs: ドキュメントのみの変更
style: コードの意味に影響を与えない変更(空白、書式設定、セミコロンの欠落など)
refactor: バグを修正せず、機能を追加しないコード変更
perf: パフォーマンスを向上させるコード変更
test: 不足しているテストを追加するか、既存のテストを修正します
chore: ビルドプロセスまたはドキュメント生成などの補助ツールとライブラリへの変更
使用例
feat: hogeからhogeを取得するためにHogeHogeFetcherクラスを追加
まとめ
業務に入るとそのチームや会社毎にルールがあると思いますので、そのルールに従って管理していくと思いますが、是非業務未経験の方やこれからもう少し深く勉強していくぞ!!と言う方にはIssueやMilestoneを作成して、プルリクベースで一度GitHubを操作してみると非常に理解が深まりますし、意外と簡単な面もありますので是非お試し下さい!!
おまけ
もしコミットミスなどして焦った場合はこちらの記事をどうぞ!!(もちろん筆者は助けられました!!執筆された方!!ありがとうございます!!)
修正 改善
2021.7.21
修正: addに関する操作で一部間違いがありましたので修正しました。
@culageさん ありがとうございました!!