リモートで削除された複数のタグを一括削除するには、以下のコマンドで出来ると教わりました。
$ git fetch origin --prune 'refs/tags/*:refs/tags/*'
'refs/tags/*:refs/tags/*'
についてしっかり理解していなかったのでいろいろ試してみました。
あとでやったことを見返すためにログを張っておこうと思います。
※タグと言いつつ、ブランチで試しています。
今の状態
$ git --version
git version 2.14.1
$ git remote
origin
$ git branch -a
fuga
hoge
mas
* master
pyo
origin/HEAD -> origin/master
origin/fuga
origin/hoge
origin/mas
origin/master
origin/pyo
以下試した内容を列挙していきます。
※URL等は適当に変更しています。
aaaブランチないからプッシュできない
$ git push origin aaa:iii
error: src refspec aaa does not match any.
error: failed to push some refs to 'https://hogehogehoge/tutorial.git'
コロン区切りの指定している箇所をrefspecと呼ぶみたい。
んで手前をsrcと呼ぶようで。
失敗したので作成されていない。
$ git branch -a
fuga
hoge
mas
* master
pyo
origin/HEAD -> origin/master
origin/fuga
origin/hoge
origin/mas
origin/master
origin/pyo
hogeブランチからリモートに新しいブランチを作る
$ git push origin hoge:test
Password for 'https://hogehogehgoe':
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create pull request for test:
remote: https://hogehogheogheoghe/tutorial/pull-requests/new?source=test&t=1
remote:
To https://hogheogheohgoe/tutorial.git
* [new branch] hoge -> test
リモートに作ったのでローカルには表示されない。
$ git branch -a
fuga
hoge
mas
* master
pyo
origin/HEAD -> origin/master
origin/fuga
origin/hoge
origin/mas
origin/master
origin/pyo
origin/test
リモートから持ってくると出てきた。
$ git checkout -b origin/test
Switched to a new branch 'origin/test'
$ git branch -a
fuga
hoge
mas
master
* origin/test
pyo
origin/HEAD -> origin/master
origin/fuga
origin/hoge
origin/mas
origin/master
origin/pyo
origin/test
無いをプッシュで消える。
$ git push origin :test
Password for 'https://hogehogheoghoe':
To https://hgoehogheohgegheo/tutorial.git
- [deleted] test
$ git branch -a
fuga
hoge
mas
master
* origin/test
pyo
origin/HEAD -> origin/master
origin/fuga
origin/hoge
origin/mas
origin/master
origin/pyo
まとめ
無いをpullするとどうなるかもやってみたのですが、
動きがよくわからなかったです。マージっぽい感じもしましたが・・。
とりま、やってみたことは以上です。
gitって奥が深いですね。また暇を見つけていろいろ試してみたいです。