Gitコマンド「branch」「fetch」よく使うオプションまとめ
2020/10/17
Gitのブランチに関するコマンドgit branch
と、リモートリポジトリのデータを取得するGitコマンドgit fetch
について。
git branch
ブランチ一覧を表示する
ローカルリポジトリに存在するブランチリストを表示する。*
マークがついているブランチが現在チェックアウトしているブランチとなる。
❯ git branch
* master
test
-a
オプションをつけることで、リモート追跡ブランチを含んだブランチ一覧を表示する。
❯ 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を起点にして、指定した名前のローカルブランチを作成する。
❯ git branch develop
同時にチェックアウトも行う場合は、git checkout -b <任意のブランチ名>
となる。
❯ git checkout -b develop
ブランチを削除する
-d
オプションで、現在チェックアウトしているブランチにマージされているローカルブランチを削除できる。
❯ git branch -d develop
--merged
オプションで、現在チェックアウトしているブランチにマージされているローカルブランチを確認できる。
❯ git branch --merged
* master
develop ## developブランチはmasterにmergeされているので-dオプションで削除できる
現在チェックアウトしているブランチにマージされていないローカルブランチを削除する場合は-D
オプションを使う。
❯ git branch -D feature
リモート追跡ブランチを削除する場合は、-dr
オプションをつける。
❯ git branch -dr origin/develop
※リモートリポジトリのブランチを削除する場合は、git push --delete origin <ブランチ名>
となる。
❯ git push --delete origin feature
git fetch
リモートリポジトリの全ての状態を取得
リモートリポジトリの最新の状態を、ローカルリポジトリのリモート追跡ブランチに同期する。
❯ git fetch
引数を省略した場合、リモートリポジトリのすべての状態を取得する。
リポジトリをクローンしたときには、リモートリポジトリに対して自動的に
origin
という名前がつけられます。
※引用: Git - リモートでの作業
なため、その場合は以下2つのコマンド内容は同じである。
❯ git fetch
❯ git fetch --all
❯ git fetch origin
リモートリポジトリの指定ブランチの状態のみを取得
git fetch <リモートリポジトリ名> <リモートリポジトリブランチ名>
と指定することで、指定ブランチの状態のみを取得することができる。
❯ git fetch origin master
不要なリモート追跡ブランチを削除する
git branch -dr
コマンドでリモート追跡ブランチを削除できるが、git fetch --prune
コマンドを用いることによって、リモートリポジトリで削除されたブランチに対応する追跡ブランチをまとめて削除することができる。
❯ git fetch --prune
❯ git fetch -p ## 省略形
参考
- Git でローカルとリモート両方のブランチを削除する方法 - yu8mada
- Git の Fetch コマンドの使い方 - yu8mada
- Gitでローカルブランチ・リモートブランチを削除する方法 | WWWクリエイターズ
- git branch コマンド - Qiita
- いまさらだけどGitを基本から分かりやすくまとめてみた - Qiita