Gatsby Logo

Gitコマンド「branch]「fetch」よく使うオプションまとめ

2020-10-18

Gitのブランチに関するコマンドgit branchと、リモートリポジトリのデータを取得するGitコマンドgit fetchについて。

git branch


ブランチ一覧を表示する

ローカルリポジトリに存在するブランチリストを表示する。*マークがついているブランチが現在チェックアウトしているブランチとなる。

zsh
git branch
* master
  test

-aオプションをつけることで、リモート追跡ブランチを含んだブランチ一覧を表示する。

zsh
git branch -a
* master
  test
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test

remotesとはリモート追跡ブランチのこと。
参考:Git で「追跡ブランチ」って言うのやめましょう - Qiita

remotes/origin/HEAD -> origin/masterとはリモート追跡リポジトリのデフォルトのブランチがorigin/masterになっているという意味。 例えば、git checkout -b test originは、git checkout -b test origin/masterと同じ意味となる。


ブランチを作成する

git branch <任意のブランチ名>で、現在のHEADを起点にして、指定した名前のローカルブランチを作成する。

developという名前のブランチを作成する場合
git branch develop

同時にチェックアウトも行う場合は、git checkout -b <任意のブランチ名>となる。

developという名前のブランチを作成するして、チェックアウトも行う場合
git checkout -b develop

ブランチを削除する

-dオプションで、現在チェックアウトしているブランチにマージされているローカルブランチを削除できる。

developブランチを削除する場合
git branch -d develop

--mergedオプションで、現在チェックアウトしているブランチにマージされているローカルブランチを確認できる。

zsh
git branch --merged
* master
  develop  ## developブランチはmasterにmergeされているので-dオプションで削除できる

現在チェックアウトしているブランチにマージされていないローカルブランチを削除する場合は-Dオプションを使う。

featureブランチを削除する場合
git branch -D feature

リモート追跡ブランチを削除する場合は、-drオプションをつける。

developブランチのリモート追跡ブランチを削除する場合
git branch -dr origin/develop

※リモートリポジトリのブランチを削除する場合は、git push --delete origin <ブランチ名>となる。

リモートリポジトリのfeatureブランチを削除する場合
git push --delete origin feature

git fetch


リモートリポジトリの全ての状態を取得

リモートリポジトリの最新の状態を、ローカルリポジトリのリモート追跡ブランチに同期する。

zsh
git fetch

引数を省略した場合、リモートリポジトリのすべての状態を取得する。

リポジトリをクローンしたときには、リモートリポジトリに対して自動的にoriginという名前がつけられます。


※引用:Git - リモートでの作業

なため、その場合は以下2つのコマンド内容は同じである。

zsh
git fetch

❯  git fetch --all

❯  git fetch origin

リモートリポジトリの指定ブランチの状態のみを取得

git fetch <リモートリポジトリ名> <リモートリポジトリブランチ名>と指定することで、指定ブランチの状態のみを取得することができる。

リモートリポジトリ(origin)のmasterブランチのみをfetchする場合
git fetch origin master

不要なリモート追跡ブランチを削除する

git branch -drコマンドでリモート追跡ブランチを削除できるが、git fetch --pruneコマンドを用いることによって、リモートリポジトリで削除されたブランチに対応する追跡ブランチをまとめて削除することができる。

リモートリポジトリ(origin)で削除されたブランチに対応する追跡ブランチを削除する場合
git fetch --prune

❯  git fetch -p  ## 省略形

参考

Gatsby Tutorial Starter - Justin Formentin