git branch コマンド
公式サイト:
git-branch | Git Documentation [Official]
使い方
ローカルのブランチ/作業ブランチを確認する。
$ git branch
リモートのブランチを確認する。
$ git branch --remote
全てのブランチ (ローカル/リモート) を確認する。
$ git branch --all
現在のブランチから派生ブランチを作成する。
$ git branch develop
作業ブランチを変更する。
$ git switch develop
現在のブランチから派生ブランチを作成して、作業ブランチを変更する。
$ git switch -c develop
作業ブランチを変更する。(旧形式)
$ git checkout develop
現在のブランチから派生ブランチを作成して、作業ブランチを変更する。(旧形式)
$ git checkout -b develop
ローカルのブランチを push
する。(リモートに反映させる。)
$ git push -u origin develop
2回目以降に push
を実行する。(-u
オプションで上流ブランチを設定済みの場合)
$ git push
ローカルのブランチを削除する。
$ git branch -d develop
リモートのブランチを削除する。
$ git push -d origin develop
リモートのブランチ情報を取得する。(ローカルのリポジトリにキャッシュする。)
$ git fetch
参考:
最近コミットしたブランチを探す | yuhei.kagaya
ブランチ一覧を更新時刻つきで表示したい場合、for-each-ref が使える | Bye Bye Moore
What is the format of pattern in git-branch --list – Stack Overflow
新しいブランチを作成する
master
ブランチから新しく develop
ブランチを作成して切り替える。
$ git switch master $ git branch develop $ git switch develop
git switch
コマンドに -c
オプションを付けてブランチを作成する。
$ git switch master $ git switch -c develop
git checkout
コマンドに -b
スイッチを付けてブランチを作成する。(旧形式)
$ git checkout master $ git checkout -b develop
特定のコミットからブランチを作成する。
$ git branch develop 1234abc
または、git switch
コマンドに -c
オプションを付けて特定のコミットからブランチを作成する。
$ git switch -c develop 1234abc
ドキュメント:
-c – git-switch | Git Documentation [Official]
参考:
How to create a branch from a specific commit ID | Educative
Branch from a previous commit – Stack Overflow
How can I force git to always branch from master? – Stack Overflow
作業ツリーからブランチを作成する
現在の作業ツリーの全ての変更をスタッシュに退避し、新規ブランチを作成してブランチを切り替え、退避していた作業内容をスタッシュから取り出してコミットする。
$ git stash -u $ git switch -c work $ git stash pop $ git add . $ git commit -m "[WIP]"
参考:
ブランチを強制的に作成する
develop
が存在しない場合は作成し、存在する場合は HEAD
が master
と同じコミットを指すように変更する。
$ git checkout -B develop master
参考:
force checkout of duplicate branch? – Stack Overflow
リモートにブランチを作成する
参考:
How do I create a remote branch? – Stack Overflow
履歴のないブランチを作成する
履歴のないブランチを作成するには、--orphan
オプションを指定してチェックアウトを実行する。
$ git checkout --orphan empty
参考:
How to remove the first commit in git? – Stack Overflow
説明コメント (Description)
参考:
ブランチには説明をつけることができる | アジャイル SE の憂鬱
リモートブランチ
リモートブランチをフェッチしてローカルで使用するには、git switch
コマンドを用いる。
$ git switch develop-on-remote
または、git checkout コマンドに --track オプションを付けて実行する。(※旧形式)
$ git checkout --track origin/develop-on-remote
参考:
remote に branch を push し、remote から clone したリポジトリの branch を変更して push する | basyura’s blog
fetch remote branch – Stack Overflow
HEAD
参考:
リモートリポジトリの HEAD のブランチを変更する – Qiita
ブランチや HEAD をサブコマンドで操作する | 丸ノ内テックブログ
参照 – HEAD と heads と tags と remotes | たいさブログ
デフォルトブランチ (master / main)
デフォルトのブランチ名として main
を使用するように設定する。
$ git config --global init.defaultBranch main
参考:
リポジトリのデフォルトブランチの名前が master から main に変わります | Backlog
GitHub でこれから作成するリポジトリのデフォルトブランチ名が main に/master から main へ変更 | Publickey
デフォルトブランチを変更する | GitHub Docs [公式]
Regarding Git and Branch Naming | Software Freedom Conservancy
ブランチの一覧を確認する
参考:
ローカルやリモートのブランチ一覧を見る/リモートブランチ/追跡ブランチの情報を更新する | tweeeety のぶろぐ的めも
ブランチ名を変更する
ローカルブランチの名前を変更する。
$ git branch -m old_branch new_branch
カレントブランチ (現在チェックアウトしているブランチ) の名前を変更する。
$ git branch -m new_branch
ローカルで削除したブランチをリモートに反映させる。(リモートブランチを削除する。)
$ git push origin :old_branch
ローカルで作成したブランチをリモートに反映させる。(リモートブランチを作成する。)
$ git push origin new_branch
参考:
ブランチ名前を変更するオプション (git branch -m) | WWW クリエイターズ
ブランチの一覧をソートして表示する
コミットの作成日時が新しい順にソートして表示する。
$ git branch --sort=-authordate
参考:
git branch の結果を時間順にソート | Islands in the byte stream
ブランチを最新コミット順に並べたら幸せになれた | kakakakakku blog
ブランチ一覧を更新時刻つきで表示したい場合、git の for-each-ref が使える | Bye Bye Moore
for-each-ref で各ブランチで最後に commit した人とその更新時刻を一覧表示させる | DOT NOTES
Sort Git Branches by Date | David Walsh Blog
git-for-each-ref | Git [Official]
How can I get a list of branches, ordered by most recent commit? – Stack Overflow
ブランチが特定のコミットを指すように設定する
ブランチをチェックアウトした後に、git reset
コマンドにコミットハッシュを指定して実行する。
$ git checkout master $ git reset --hard 12345abcde
あるいは、git branch
コマンドに -f
オプションを付けて実行する。
$ git branch -f master 12345abcde
参考:
How do I make a branch point at a specific commit? – Stack Overflow
追跡ブランチを確認する
ブランチの一覧で情報を詳細に確認する。
$ git branch -vv
現在のブランチの追跡ブランチを確認する。
$ git status -sb
参考:
ローカルブランチがどのリモートブランチを追跡してるのか確認する方法 | dackdive’s blog
追跡ブランチを設定する
現在のブランチが origin/master
を追跡するように設定する。
$ git branch --set-upstream-to origin/master
参考:
不要なブランチを削除する/ブランチの整理
参考:
特定のコミットを含むブランチを探す
参考:
あるコミットが、特定のブランチに属するか調べる方法 – Qiita
命名規則 (Naming Convenstion)
- メイン (Main)
main
master
- 開発 (Development)
dev
- フィーチャーブランチ (Feature Branch):新規機能の開発
feature
new
- バグ修正 (Bug Fix)
bug
- 緊急パッチ (Hotfix):脆弱性や機能不全に関する緊急を要する修正
- 作業ブランチ (WIP)
wip
- イシュー (Issue)
- トピック (Topic):特定のカテゴリにおける機能を開発するためのプロジェクト用ブランチ
- タスク (Task)
- チケット (Ticket)
- ビルド (Build)
- ステージング (Staging)
- リリース (Release)
- バージョン (Version)
vX.Y.Z
ver
- テスト (Test):品質保証テスト (QA Testing) を適用するためのブランチ
test
- 実験的 (Experimental)
junk
- ユーザー (User)
- サポート (Support)
- マージ (Merge):マージコンフリクト解消のための作業用ブランチ
区切り (Separators)
- ハイフン/ダッシュ (
-
) - アンダースコア (
_
) - スラッシュ (
/
)
参考:
Branching Naming Convention: Best Practices | Coding Sight
Branch Naming Conventions | DeepSource
Branch Naming Convention: 7 Best Practices to Follow | HackerNoon
Branch Naming Conventions | Nitanshu Verma
Branch Naming Convention | couchcamote
Organizing Git Branches with Naming Conventions | Michael Erpenbeck
What are Some Best Practices that You Follow while Naming Branches? | Hashnode
Branch Naming Conventions (revett) – GitHub Gist
Dealing with Special Characters in Branch and Tag Names | GitHub Docs [Official]
What are some examples of commonly used practices for naming branches? – Stack Overflow
Is there a naming convention for repositories? – Stack Overflow
Which characters are illegal within a branch name? – Stack Overflow
Why do some branch names have slashes in them? – Stack Overflow
Git Recent
リポジトリ:
paulirish/git-recent: See Your Latest Local Branches, Formatted Real Fancy – GitHub