リモートブランチを自動削除する設定
GitHubのリポジトリのSettigs -> Options -> Merge button
にあるAutomatically delete head branches
を有効化する。
Pull Requestをマージする
プルリクエストを作成し、マージすると・・・deleted the issue8 branch
となっている。
マージされたあとの状態
ローカルは自動に削除されないが、リモートは削除された状態のはず。
ブランチの状態を確認する・・・リモートも消えていない?
1 2 3 4 5 6
| PS > git branch --merged * issue8 master PS > git branch --remote --merged origin/issue8 origin/master
|
ローカルブランチを削除
ローカルは自動では消えないので削除する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| PS > git branch -d issue8 error: Cannot delete branch 'issue8' checked out at 'XXXXXXXXXXXXXXXXX' PS > git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master'. PS > git pull remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (1/1), done. From XXXXXXXXXXXXXXX:XXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX xxxxx..xxxxx master -> origin/master Updating xxxxx..xxxxx Fast-forward src/XXXXXXXXXXXXXXX | 16 ++++++++++++++-- src/XXXXXXXXXXXXXXX | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-)
|
リモートブランチを削除・・・エラー
リモートブランチを削除するとエラー。
1 2 3 4 5 6 7 8
| PS > git branch --remote --merge origin/issue8 origin/master PS > git branch -d issue8 Deleted branch issue8 (was ccb846c). PS > git push --delete origin issue8 error: unable to delete 'issue8': remote ref does not exist error: failed to push some refs to 'xxxxxxxxxxxxxx/xxxxxxxxxxxxxx'
|
消えている。ローカルのゴミが残っているだけだ。
git remote prune origin
で削除できる。
git fetch --prune
でも。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| PS > git branch --remote --merge origin/issue8 origin/master PS > git branch --remote origin/issue8 origin/master PS > git remote show origin * remote origin Fetch URL: XXXXXXXXXXXXXXX:XXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX Push URL: XXXXXXXXXXXXXXX:XXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX HEAD branch: master Remote branches: master tracked refs/remotes/origin/issue8 stale (use 'git remote prune' to remove) Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date) PS > git remote prune origin Pruning origin URL: XXXXXXXXXXXXXXX:XXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX * [pruned] origin/issue8 PS > git branch --remote --merge origin/master
|
自動的に消すには
git config --global fetch.prune true
でfetch時に自動削除できる。
設定しているとgit pull
などのfetchを含む処理で消える。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| PS > git branch -r origin/issue11 origin/master PS > git pull From XXXXXXXXXXXXXXX:XXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX - [deleted] (none) -> origin/issue11 remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (1/1), done. From XXXXXXXXXXXXXXX:XXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX xxxxx..xxxxx master -> origin/master Updating xxxxx..xxxxx Fast-forward src/XXXXXXXXXXXXXXX | 16 ++++++++++++++-- src/XXXXXXXXXXXXXXX | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) PS > git branch -r origin/master
|