プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Git
  • 【Git】ブランチに関する知識
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Git】ブランチに関する知識

11.19

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

ブランチとは?

Gitで記録する履歴を本流から分岐(枝分かれさせる)ことです。

Gitの仕組み的な観点から見たブランチ

ブランチの情報は、リポジトリ(.gitディレクトリ)の中(.git/refs/)に記録されています。

「コミットを指し示したポインタ」になります。(具体的にはコミットされた際に採番されるコミットID(40桁のハッシュ)を記録しているだけのシンプルな仕組みです。)作業中のブランチにてブランチ内でコミットするとそのブランチ内の最新のコミットを指し示すように切り替わります。

リモートブランチについて

git fetchコマンドを実行した際に「origin/master」等のリモートブランチが作成されますが、これはリモートのブランチの内容をローカルに保存して、そのブランチへの状態へのポインタのことを指しており「リモートでの変更内容」(誰かが編集している等)を扱うブランチです。リモートブランチの内容はローカルにマージして取り込みます。

git fetchコマンドを実行するとリモートブランチに新しくコミットされた差分のコミット情報が「origin/」という接頭辞がついてローカルに保存されるのです。

ブランチの種類

masterブランチ

Gitのリポジトリを作成すると自動で最初から作られるブランチで「本流」のソースコードのことです。

基本的に、本番用の最新のソースコードが格納されている場所という認識で問題ありません。リリース専用のブランチであり実際に開発されることはありません。

トピックブランチ

短期的に使う開発作業用のブランチのことです。基本的にはmasterブランチにすぐに合流させます。

ブランチのメリット

  • 別々の機能を別々の開発者が実装していても影響を及ぼすことなく開発できる点

ブランチの用途

  • ベース品は同じだが、別々の機能を実装させたい場合

ブランチを作成するコマンド

1
git branch 作成するブランチ名

なお、このコマンドは基本的に必ずmasterブランチで行うようにしましょう。

別のブランチでこのコマンドを実施してしまうと、別のブランチをベースとしたさらなる別ブランチが作られてしまい階層が深くになってしまうためです。

複数ブランチがある場合にどのブランチを使うか

複数ブランチがある環境では下記のコマンドを実行して使うブランチを指定します。それ以降の操作は全て切り替え先のブランチにて行われるようになります。Gitの内部動作的にはHEAD(作業中のブランチの最新コミット)が移動する形になります。

1
git checkout 切り替え先のブランチ名

このコマンドはブランチを切り替える場合にも使いますが、本来最も一般的な用途としては特定のバージョンをワークツリーに反映させることを意味します。

ブランチを作成するのと同時にそのブランチに切り替えるコマンド

1
git checkout -b 作成し切り替えたいブランチ名

チェックアウト時の注意点

ただ、ワークツリーでmodifiedとなっているファイルがある場合は編集した内容が上書きされる恐れがあるためにチェックアウトできません。その際のエラーは下記のようになります。

1
error.Your local changes to the following files would be overwritten by chekout(チェックアウトすると次のファイルに対する変更が上書きされてしまう)

この場合の対処としては、modifiedとなっているファイルをコミットするか、編集を取り消したりする必要があります。

ブランチの一覧を確認する。

1
git branch

全てのブランチを表示する。

リモートリポジトリも含めて全てのブランチが表示されます。

1
git branch -a

ブランチ名を変更する。

自分が今作業しているブランチのブランチ名が変わります。

1
git branch -m <ブランチ名>

ブランチを削除する。

なお、masterにまだマージされていないブランチの場合は削除は実行されません。なので安全なコマンドと言えるでしょう。

1
git branch -d <ブランチ名>

ブランチを強制削除する。

masterにまだマージしていなかったとしても強制的に削除をするコマンドになります。

1
git branch -D <ブランチ名>

スポンサーリンク
  • 2019 11.19
  • miyabisan2
  • コメントを書く
  • Git
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 11.21

    【GitHub】基本

  2. 2020 03.03

    【Git】変更差分(git diff)、変更履歴(git log)を確認する。

  3. 2019 12.14

    【VSCode】Gitとの連携に関する知識

  4. 2019 11.17

    【Git】ローカルリポジトリの知識、gitデータの管理の仕組み(内部動作など)

  5. 2019 11.18

    【Git】Gitの基本、Gitの設定

  6. 2019 11.20

    【Git】プルやフェッチについて

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Git】リモートリポジトリからローカルリポジトリに取…

【Git】プッシュやプルリクエスト(レビュー)に関する…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー