Atomパッケージの公開を撤回＆色々無かったことにする

久々にAtomのパッケージを更新しようとしたら手間取ったので、やり方を記しておきます。
以前した投稿パッケージ（[Atomでパッケージを公開・更新する](https://qiita.com/_-----------_/items/7212999a5e6cfedf41a8)）を例にやっていきます。

参考：[Atomパッケージをアンパブリッシュする | To Be Decided](https://www.kaitoy.xyz/2015/12/02/unpublish-atom-package)

##不完全なままcommit＆push&apm publishしてしまった！！！！！！！！！
（パッケージを更新して再インストールしようとしたら、出来なくなってたので確定スリーアウト状態に）

__atom.io__
![スクリーンショット 2019-02-14 16.48.46.png](https://qiita-image-store.s3.amazonaws.com/0/186959/423474bb-cb7d-88f2-b509-33060891e97f.png)
__github__
![スクリーンショット 2019-02-14 16.35.48.png](https://qiita-image-store.s3.amazonaws.com/0/186959/33dc880a-6630-cadd-4bd0-2e13ff08435e.png)

__公開中のパッケージのバージョンを下げたい！！！
最新のコミット2つ(`apm publish`の自動コミットと己のコミット）を無かったことにしたい！！！！！！__


##環境
```shell
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.2
BuildVersion:	18C54
$ atom -v
Atom    : 1.34.0
Electron: 2.0.16
Chrome  : 61.0.3163.100
Node    : 8.9.3
```

##作業手順


### パッケージの公開を撤回する
```shell
# apm unpublish (name)@(version) 
$ apm unpublish latex-itemizer@0.1.0
Are you sure you want to unpublish 'latex-itemizer@0.1.0'? (no) yes # ここで入力
Unpublishing latex-itemizer@0.1.0 ✓
```

![スクリーンショット 2019-02-14 16.47.44.png](https://qiita-image-store.s3.amazonaws.com/0/186959/17ee4882-54c2-a72c-85b2-20e10d530115.png)

これで指定したバージョンは非公開になる。


### 作業場所を一回綺麗に
```shell

$ cd /Users/aaa/.atom/packages
$ apm uninstall latex-itemizer
Uninstalling latex-itemizer 
$ git clone https://github.com/horyu/latex-itemizer.git
Cloning into 'latex-itemizer'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 38 (delta 2), reused 7 (delta 2), pack-reused 31
Unpacking objects: 100% (38/38), done.
$ cd latex-itemizer/
# 状態を確認
$ git log
commit f1f41164d169082787b26e60bcf0cb6bdff0762f (HEAD -> master, tag: v0.1.0, origin/master, origin/HEAD)
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 16:09:06 2019 +0900

    Prepare 0.1.0 release

commit b9a06bbd2956ab7ee745b2466c5cfdb24ce8f798
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 16:01:42 2019 +0900

    update dependencies

commit 7b54d3ea62081ba6ccbb36152d0bc0c677d4bfab
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 14:13:30 2019 +0900

    tweak newline-itemize
```

## commitを無かったことにする（リモートも）
```shell
## 2個戻したいので HEAD~~
$ git reset --hard HEAD~~
HEAD is now at 7b54d3e tweak newline-itemize
$ git log
commit 7b54d3ea62081ba6ccbb36152d0bc0c677d4bfab (HEAD -> master, origin/master, origin/HEAD)
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 14:13:30 2019 +0900

    tweak newline-itemize
# (略）
# リモートに反映させる
$ git push -f
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/horyu/latex-itemizer.git
 + f1f4116...7b54d3e master -> master (forced update)
```
![スクリーンショット 2019-02-14 16.44.30.png](https://qiita-image-store.s3.amazonaws.com/0/186959/2db6c03d-7075-5a1a-0d86-16798922adc6.png)

## tagを削除する
![スクリーンショット 2019-02-14 17.00.35.png](https://qiita-image-store.s3.amazonaws.com/0/186959/90f0d19a-7314-8b3e-233a-ca8a70e1e506.png)

```shell
$ git tag
v0.0.1
v0.0.2
v0.1.0
# ローカルのタグを削除 git tag -d (tagname)
$ git tag -d v0.1.0
Deleted tag 'v0.1.0' (was 4314c61)
# タグの更新をリモートに反映 git push origin :(tagname)
$ git push origin :v0.1.0
To https://github.com/horyu/latex-itemizer.git
 - [deleted]         v0.1.0
```

![スクリーンショット 2019-02-14 17.10.19.png](https://qiita-image-store.s3.amazonaws.com/0/186959/230ad864-67b5-5241-da6a-a2890203ae67.png)

__以上__

##注意
最初の参考ページの最後に書かれているが、Atomのパッケージは`~/.atom/.apm/latex-itemizer/0.1.0/package.tgz`のようにキャッシュされている。

- パッケージをunpublishする前に、あるユーザーがインストールしてしまっていた
- 作者がパッケージをunpublishしたのと同じバージョンでpublishした

という場合に、あるユーザーはキャッシュを削除しなければ、新しくpublishされた方にパッケージを更新できなくなる。（なので、同じバージョンは使わず、バージョンは上げていきましょう）