📑

【Git】gitの基本的なフローについて

に公開

Gitのフロー

image1

Gitを使いチーム開発をするときの手順の例

  1. git logでHEADの位置、リモート・ローカルの更新状況を確認する。HEAD->main(緑), リモートの同じブランチ(赤)が揃っている。リモートの基幹ブランチの最新状態がローカルにも反映されていることがわかる。
    image1
  1. git checkout -b feature/branch_nameとして「feature/branch_name」という作業ブランチを新規作成し、移動。
    image1
    のように新しいブランチが横に追加されていればOK
  2. 変更を加え、addし、commit
  3. git push origin HEADとしてリモートにpush。
  1. Github, Gitlabでプルリクエスト等を作成してレビューをもらう
  2. マージがOKもらったら基幹ブランチにマージして終了

これを回すのがGitのフロー。とりあえずこの順を守ってフローを回せばOK


Gitの基本操作

ファイルの変更手順

image1

コマンド

  • 全てのファイルを登録する
git add -A
  • 現在ディレクトリ配下全てを登録する:git add .
  • ファイルを指定する:git add ファイル名
  • コミットする
git commit -m “コミットメッセージ”

リモートとローカル

  • リモート:チームで共有する「本番」
  • ローカル:リモートから引っ張ってきて作業する「コピー・分身」
    image1

コマンド

  • リモートの情報を引っ張ってくる(pull)

git pull リモートリポジトリ名 ブランチ名


git pull origin main

  • リモートに変更を加える(push)

git push リモートリポジトリ名 ブランチ名


git push origin feature/task001



git push origin mainをする(リモートの基幹ブランチにpushする)のはNG。それを避けるために筆者は

git push origin HEAD

とすることが多い(HEADとすることで今の作業ブランチと同じところにpushできるから)


基幹ブランチと作業ブランチ

  • 基幹ブランチ:「本流」のブランチ。(mainとかdevelopとか。あなたの会社やチームが決めたものに従う)
  • 作業ブランチ:基幹ブランチから新しく生やして実際の変更をするブランチ(普通はfeature/ブランチ名とする)

image1
上記の例では

  1. 基幹ブランチの最新コミット「B」に移動する
  2. 作業ブランチを作って移動する(そこにHEADを移す)

作業開始!

コマンド

  • 新しくブランチを作り、移動
git checkout -b ブランチ名
  • ただのブランチ移動
git checkout ブランチ名
  • ローカルのブランチの確認
git branch
  • リモートのブランチの確認
git branch -a

よく使うコマンド

ローカルの変更状況を調べる

git status

コミットのログを調べる
--onlineをつけるとより簡単になる

git log
git log --oneline

ローカルの変更をバックグラウンドに残しつつ辞退する
popをつけると戻ってくる(popしまくって何個も溜まっても特定のstashを指定して戻す方法もある)

git stash
git stash pop

リモートのURLを確認する

git remote -v

豆知識

GitHubで編集を提案

Discussion