💨

未経験で入社した私が、Gitでつまずいたポイント3つ🐤

に公開

Git操作は、正直なところ自身の成果物をあげるためだけに

  • git add
  • git commit
  • git push
  • git checkout 少し..

これくらいしか使っていませんでした...😓

しかし、いざ実務でGitを触り始めると、
見たことのないコマンドや運用ルールが次々に登場し、
「全然わからない…」と何度も手が止まりました。

この記事では、私が特に下記につまずいた3つのポイントを体験談ベースで紹介します👇

1. ブランチの向き先ミスは事故につながる
2. git checkout と git switch の違い
3. fork と clone の違い

1. ブランチの向き先が合っていないと事故になる

入社して最初の課題で機能ブランチを作成し、push したのですが…

向き先(ベースブランチ)が main になってしまっていました。

向き先が誤っていたことで、関係のない差分まで含んでしまっていました😱

まだ自身の課題だったからよかったものの、もしこれが案件だった場合、

  • 他機能のコードが本番に混ざる
  • バグがユーザーに影響する
  • 他メンバーの作業がすべて止まる(レビューが進まない)

といった開発全体に影響する事故になっていた可能性があります。

現在は push 前に下記を確認するようにしています。

  • 今いるブランチは正しい? → git branch
  • 向き先は合っている? → PR 作成時に必ずチェック
  • 余計な差分が混ざっていない? → git diff
  • 「向き先」は常に確認する!!!

2. git checkout と git switchの違いについて

ブランチの操作には、git checkoutを使うものだと思っていました。
ですが、実務ではgit switchが使われていて、

git checkoutとは、なにが違うのだろう」

と思いました。

実はgit checkoutは「なんでもできる」万能コマンドで、初心者には間違いを起こしやすいそうです。

その反面、初心者は意図せずファイルの変更を消してしまうなど、
間違いを起きやすいというデメリットがあるそうです。

私は実務で switch を使うことで、

  • うっかりファイルを戻してしまう事故を防げる
  • コマンドの意図が明確になる

というメリットを感じました。

これからブランチ操作は switch が基本! と覚えておくと安心💡

3.「forkとcloneの違い」が分からず混乱した

初めは forkcloneって「なにがどう違うの…?」と混乱しました。

結論:コピー先が全然違う!

  • fork:リポジトリを自分のアカウントにコピー
  • clone:好きなリポジトリを自分のPCにコピー

forkは GitHub上のコピー
cloneは ローカルのコピー

という違いがあります。

どんなときにforkするの? 🤔

  • 他人のリポジトリに直接pushできないとき
  • OSSや他チームのコードを修正したいとき
  • PR前提で作業したいとき

自分に書き込み権限がないときに使う!

どんなときにcloneするの? 🤔

  • 自分(またはチーム)のリポジトリで作業するとき
  • 自分の変更をそのままpushして進めたいとき

権限があるリポジトリで作業するときに使う!

最初は混乱しましたが、

fork は「まず自分のアカウントに持ってくる」
clone は「PCに持ってきて作業する」

と理解できました✨

最後に

実務でGitを使うようになってから、運用ルールやコマンドの使い分けなど、知らないことが本当にたくさんあると痛感しています。
ですが、つまずいたポイントが明確になる度に、少しずつ理解が深まってきている実感もあります。

今回3つに絞らせて紹介させていただきましたが、同じように実務でGitに挑戦している方の少しでも助けになれば嬉しいです。

読んでいただきありがとうございましたm(_ _)m

株式会社ソニックムーブ

Discussion