🟨
[git]ローカルリポジトリでブランチを新規作成
特定のブランチ(develop)から分岐する新しいブランチの作成
- ローカルの対象ブランチ(develop)に移動
$ git checkout develop(branch-name)
- リモートリポジトリ(origin)から最新のコミット(変更)履歴を取り込む
$ git fetch <remote-name> <branch-name>
(リモートリポジトリから最新の変更を取得して、ローカルのリモートトラッキングブランチを更新)
$ git pull origin(remote-name) develop(branch-name)
(リモートの対象ブランチの変更を取得し、ローカルの対象ブランチにマージする)
- 現在checkoutしている対象ブランチ(develop)のコミット履歴を継承した新しいブランチの作成
$ git switch -c <new-branch-name>
- ローカルリポジトリで作成した新しいブランチをリモートリポジトリに追加
$ git push -u origin(remote-name) <new-branch-name>- オプション: -u (新規作成したローカルブランチとリモートブランチを「追跡関係」にする
- オプション: -u (新規作成したローカルブランチとリモートブランチを「追跡関係」にする
$ git checkout
ブランチの切り替え、特定のファイルやコミットのチェックアウトなど、複数の機能を持つコマンド。
複数の機能を持つため、柔軟に使える一方で少し複雑です。
- 既存ブランチの切り替え:
$ git checkout <branch-name>
<branch-name>: 切り替えたいブランチの名前。 - 新しいブランチの作成と切り替え:
$ git checkout -b <new-branch-name>
<new-branch-name>: 作成する新しいブランチの名前。- オプション: -b (新しいブランチを作成して切り替える)
- 特定のコミットのチェックアウト:
$ git checkout <commit-hash>
<commit-hash>: チェックアウトしたいコミットのハッシュ。 - 特定のファイルのチェックアウト:
$ git checkout <commit-hash> -- <file-path>
<commit-hash>: チェックアウトするコミットのハッシュ。
<file-path>: チェックアウトするファイルのパス。
$ git fetch
リモートの変更を取得して、ローカルのリモートトラッキングブランチを更新する。
ローカルの作業ブランチはそのまま。
$ git fetch の後に $ git merge や $ git rebase を手動で行う必要がある。
- 基本的な使い方:$ git fetch
- 特定のリモートリポジトリ(origin)から最新の変更を取得:
$ git fetch origin(remote-name) - 特定のリモートリポジトリ(origin)の特定のブランチ(main)から最新の変更を取得:
$ git fetch origin(remote-name) main(branch-name)
$ git merge
現在のブランチに <branch-name> の変更を統合します。
2つのブランチを統合し、マージコミットを作成します。
履歴が分岐してマージされる形になります。
競合が発生した場合、手動で解決する必要があります。
- 基本的な使い方:$ git merge <branch-name>
<branch-name>: マージしたい他のブランチの名前。 - 作業ブランチに特定のブランチをマージ:
$ git checkout main (作業ブランチmainに移動)
$ git merge feature-branch
$ git rebase
現在のブランチの基底(基点)を別のブランチ<branch-name> の先端に変更します。
リベースにより現在のブランチの基点を変更して、より直線的な履歴を作成します。
ブランチの履歴が再書き換えられます。
競合が発生した場合、手動で解決する必要があります。
- 基本的な使い方:$ git rebase <branch-name>
<branch-name>: リベース先のブランチの名前。 - 別のブランチ(feature-branch)をメインブランチの先端にリベース:
$ git checkout feature-branch (作業ブランチfeature-branchに移動)
$ git rebase main
$ git pull
リモートリポジトリから最新の変更を取得し、それを現在のブランチに統合します。
$ git fetch と $ git merge を一度に行うコマンド。
- 指定されたリモートリポジトリから最新の変更を取得します(git fetch)。
- その後、取得した変更を現在のブランチにマージします(git merge)。
- 基本的な使い方:$ git pull [<remote> [<branch>]]
<remote>: リモートリポジトリの名前(デフォルトは origin)。
<branch>: リモートブランチの名前(デフォルトは現在のブランチ名)。 - リモートリポジトリ(origin)のブランチ(main)の変更を取得し、現在のブランチに統合:
$ git pull origin main
$ git switch
ブランチの切り替え専用のコマンド
$ git checkout よりも直感的でシンプルです。
- 既存ブランチの切り替え:$ git switch <branch-name>
<branch-name>: 切り替えたいブランチの名前。 - 新しいブランチの作成と切り替え
$ git switch -c <new-branch-name>
<new-branch-name>: 作成する新しいブランチの名前。- オプション: -c (新しいブランチを作成して切り替える)
$ git push
ローカルの変更をリモートリポジトリに送信するコマンド。
ローカルのコミットをリモートブランチに反映させる。
- デフォルトのリモートとブランチにプッシュ:$ git push
- 特定のリモート(origin)のブランチ(main)にプッシュ:
$ git push origin(remote-name) main(branch-name)
<remote-name>: プッシュ先のリモートリポジトリの名前(通常は origin)。
<branch-name>: プッシュするローカルブランチの名前。 - 新しいブランチ(new-feature-branch)をリモート(origin)にプッシュ:
$ git push origin(remote-name) new-feature-branch(new-branch-name) - タグ(v1.0.0)をプッシュ:
$ git push origin(remote-name) v1.0.0(tag-name)
Discussion