LoginSignup
9
14

GitHubに、developブランチから新しくfeatureブランチを切り出してpushする。

Last updated at Posted at 2023-03-29

Introduction

  • main(master)を本番環境で運用。
  • developを開発環境で運用。
  • 機能追加の際はfeatureブランチを切り出してdevelopにプルリク → マージする。
    (AI 開発だとdevelopを本番環境で実験して、折を見て安定版をmain(master)にマージすることもありますが...)
    上記を想定してfeatureブランチの切り出しを行っていきます。
    幾つか方法はあると思いますが、私がプロジェクトで実際に行っている方法で今回は記載します。

本記事が少しでも読者様の学びに繋がれば幸いです!
「いいね」をしていただけると今後の励みになるので、是非お願いします!

環境

Ubuntu22.04

1. ブランチの最新化

デグレすると後々大きな問題になりかねないので、ローカルブランチを最新の状態にします。

git fetch
git pull origin develop

2. ブランチの切り出し

developブランチからfeatureブランチを作成します。
ここではfeature/testブランチとします。
feature 以下は、追加する機能の名称にするとわかりやすくて良いと思います。

git checkout -b feature/test develop

developブランチをベースに、feature/testブランチを作成してチェックアウトしました。

現在のブランチがfeature/testブランチであることを確認しておきましょう。

git branch -a

ついでに log も確認できると便利です。
もしgit treeコマンドをエイリアス指定していない方は、以下の記事を参考に設定することを強くおすすめします。

設定が完了したら log を確認しましょう。最新のdevelopブランチと同様の log が表示されます。

git tree

3.GitHub に push

既にfeatureブランチに機能を追加済みであれば、通常通り push すればリモートリポジトリに反映されます。

git add .
git commit -m "prefix: any message"
git push origin feature/test

機能追加前に push だけ済ませておくことも可能です。

git push -u origin feature/test

ここまでの手順で、ローカルリポジトリのfeature/testブランチとリモートリポジトリのorigin/feature/testブランチが紐付けられました。

おまけ: 誤って作成したブランチを削除したい

新しくブランチを切り出したけど、「機能追加が不要になった」「ブランチ名を間違えた」等の理由で切り出したばかりのfeatureブランチを削除したくなることがあります。
では、リモートリポジトリから削除していきましょう。
GitHub の branches をクリックして、右側のゴミ箱マークからも削除できますが、今回はコマンドから削除します。

git push -d origin feature/test

これでリモートリポジトリのfeature/testは削除されました。
ローカルリポジトリも削除しておきましょう。
削除したいfeatureブランチから別のブランチに checkout します。

git checkout develop

featureブランチを削除しましょう。

git branch -D feature/test

このような結果であれば削除完了です。

result
Deleted branch feature/test (was hogehoge).

このような結果であればgit checkoutができておりません。
git branch -aで現在のブランチを確認して、git checkoutで別のブランチに移動しましょう。
そして再度、git branch -Dです。

result
error: Cannot delete branch 'feature/test' checked out at '/hogehoge'

最後に

閲覧頂きありがとうございました。
備忘録の側面もありますが、本記事がお役に立てば幸いです!

9
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
14