yatsuhashi
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    # 【第1週】現場Rails輪読会 (2021\-09\-20\~2021\-09\-24) ###### tags: `現場Rails` [**現場Rails 輪読会ノートまとめ**](https://hackmd.io/k7i9Iq_AQy-okDUjC9AZgg) ## 目次 [TOC] ## 2021\-09\-20 ### 司会 - @yatsuhashi [タイマー](https://timer.onl.jp/) ### ドライバー - @shirotamaki ### スタート地点 - はじめに から ### 疑問点・気づき #### Chapeter1 1-1-6まで - @yatsuhashi - 同一性≠同値性 - `+`ってメソッドなんだなぁ - `omakase`って海外で通用するのか...? - @eatplaynap - Railsの基本原則全てをちゃんと読んだことがなかったが、今までRailsを使って初学者として感じていた難しさの理由が少し分かった気がした。簡単に言うと、慣れないとめちゃくちゃ難しいが慣れると簡単に自分の実現したいことができる - Railsにおまかせ - 複数のパラダイムを適用 - 統合システムを尊重する - 安定よりも進歩 - カッコいい - @yana-gi - Railsの基本原則は原文を読んでみても良さそう - 「Railsは過去の先人たちの知見のかたまり」なのでRailsにお任せする - Railsらしく考え、Railsらしいコードを書く - 最終目的はあくまでも開発チームが実現したいことを実現する - 数値の`object_id`が同じ数値であれば値が変わらないことを初めて知った - @Maeda8 - Railsの基本原則はConvention over Configuration以外知らなかった。初めて知った。 - 「最終目的は実現したいことを実現することにある」というところがいいなと思った。 - 1 + 2 → 1がレシーバで+がメソッド。 - 1がobject_id変わらないということを初めて知った。 - 1.+(3) => 4 - @fuga - Railsの基本原則はたまに立ち返ってよみたいと思った。 - `object_id`の話はいきなり出てくるには難しい話だなぁと思った。 - オブジェクトIDが同一かどうかはミュータブル・イミュータブルによって変わる、とか - @isshi-hasegawa - 加算記号`+`がメソッドだとはじめて気がついた - `レシーバ`+`メソッド`+`引数`の組み合わせが基本原則であることに変わりはない - @shirotamaki - レールズ派とレールス派がいる。 - 安定よりも進歩を重視する。の基本原則から、バージョンアップ情報は常に気にしておかなければいけないと思った。 ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - Yatz輪読会主催ありがとうございます〜!丁寧に読めて楽しい - 現場Rails最初の方のページは飛ばしてしまったので、いろいろいいことが書いてあるって初めて知った - @yatsuhashi - 改めてよろしくお願いします! - :tada: - :tada: - @yana-gi - 「はじめに」にいいことが沢山書かれていたので読んでよかった - 現場Railsは物理本で読んでいるけど、机のスペースが足りない……! - キーボードを割るしかないのでは? - ⌨️💥✊ - @shirotamaki - まだまだ、Railsに乗れていないが、輪読会を通して少しづつ乗れるようになりたい。  - Rials 🙏 - :+1: - @fuga - 初開催おめでとうございます:tada::tada::tada: - Yatzさん司会お疲れさまです。 - 今後もちょくちょく参加させてもらいたいと思うので、よろしくお願いします。 - RailsWayは奥が深そうなので、こうやって皆さんと知見を深めていくことが理解につながっていくと思うし、どんどん触れていきたいなぁと思います。 - @isshi-hasegawa - 現場Railsどんどん進めたい気持ち - @Maeda8 - Railsまだまだわかっていないことがたくさんあるので、このような形で輪読会の主催をしていただきありがたいです!ありがとうございます! - ラジオでこれからは参加することが多いと思いますがよろしくお願いいたします! - yatsuhashiさん→Yatzさん →理解しました! ## 2021\-09\-21 ### 司会 - @eatplaynap [タイマー](https://timer.onl.jp/) ### ドライバー - @yana-gi ### スタート地点 - 1-1-7 から ### 疑問点・気づき #### Chapeter1 1-2-2まで - @eatplaynap - ここらへんはチェリー本の復習 - スネークケースではないよく使われる記法として挙げられている`sampleMessage`のようなキャメルケースはJavaScriptのコード例で見かける印象 - FBCのプラクティスだとRailsのあとにOOPだけど、オブジェクト指向がきちんと分かってるとRailsで出来ることが広がったりするんだろうか - @isshi-hasegawa - `require_relative`のいい復習になった - [【Ruby】requireとrequire\_relativeの違いについて簡単にまとめてみた|TechTechMedia](https://techtechmedia.com/require-require-relative-ruby/) - Rails触るのに必要最低限なRubyの機能を紹介してる感じ - @yana-gi - チェリー本でやったことがある内容なのでここまでは大丈夫そう。現場Railsは配列やハッシュより先にクラスを説明するんだな - 実行するディレクトリをちゃんと確認します        - @shirotamaki - レシーバやメソッド、クラスなど復習になった。 - チェリー本を学んだあとでの、現場Rails( Rubyの項目)は理解できるが、最初から現場Railsだけだと難しそう。 - @yatsuhashi - 「Integerの僕」ってなんかいいな ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - yana-giさんとっさにvim使っててカッケー - チェリー本のときとは違う方がラジオ参加してくれてるので新鮮 - 今日はマイクオンで参加してるのはいつもの人たちだったけど… - @yana-gi - ドライバーやったおかげで目が覚めた - チェリー本輪読会に参加していた人はRubyの内容さらっと読んでしまうけど、そうでない方やラジオ参加の方でも疑問や感想共有して貰えたら深掘りしていきたい - @shirotamaki - Rubyの復習で、自分の成長も感じられてよかった。(内容をちゃんと理解できている) - @isshi-hasegawa - RubyとRailsのバージョンは書籍に合わせたほうがよさそう - komagataさんに通知文の差し替え依頼Done - :arigatau: - :thank you: - @yatsuhashi - yana-giさんのvimのシンタックスハイライトが気になる - [Iceberg](https://cocopon.me/blog/2014/04/iceberg-for-terminalapp/) これいれてるからかな? ## 2021\-09\-22 ### 司会 - @yatsuhashi [タイマー](https://timer.onl.jp/) ### ドライバー - @isshi-hasegawa ### スタート地点 - 1-2-3 から ### 疑問点・気づき #### Chapeter1 1-2-10まで - @eatplaynap - 「属性」はチェリー本でもやったけど難しい - インスタンス変数はオブジェクトに抱えられたデータ - オブジェクトがその他に持ってるデータの例は、インスタンスメソッドとか - p.21の「メソッドからメソッドを使う」の例で、profileメソッドの中で呼んでいるnameやaddressは変数ではなくメソッド。attr_accessorでインスタンス変数を中身に持つname、addressメソッドを定義しているから外部から呼び出せる - @yatsuhashi - メソッド内で使われているローカル変数の名前と、別のメソッド名が重複していたら、名前はローカル変数として解釈される - haruguchi-yuma - attr_xxxメソッドが戻り値を配列で返していることを始めて知った - 属性とインスタンス変数の関係がわかるようでわからないような、わかるような、、 - DBで扱うものは属性というイメージ - データと振る舞いはクラスを使うまでなかなか馴染みがなく理解しづらいなと思った。わかりやすかった。 - @yana-gi - 「属性」という言葉というとRailsのDBの列(カラム)のイメージだけだったけど、オブジェクトの抱えるデータのことも「属性」と指す(≠インスタンス変数) - [Ruby 3でprivate/public/protectedとattr\_\*アクセサを1行で書けるようになった|TechRacho by BPS株式会社](https://techracho.bpsinc.jp/hachi8833/2021_04_08/104703) - @isshi-hasegawa - `attr_accessor`がシンボルの配列を返すことで、ゲッターとセッターがそれぞれ定義されていることが明確になった感じがする - [Ruby 3でprivate/public/protectedとattr\_\*アクセサを1行で書けるようになった|TechRacho by BPS株式会社](https://techracho.bpsinc.jp/hachi8833/2021_04_08/104703) ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - はるぐちさん初参加ワイワイ - 初めてコードの読み上げをしてくれる人材が…! - いっしーさんのターミナルもIcebergになってる - @yatsuhashi - haruguchiさん参加! - @haruguchi-yuma - 朝頑張って起きて参加したいと思います!! - テンポよく進んでいて、スッと頭に入ってきました! - 現場Railsはslimなのでこれを機に使えるようにしたい - @yana-gi - はるぐちさん参加!これからも気軽に参加してください〜! - 来週あたりに1章終わりそう? - :seyane: - @isshi-hasegawa - 明日はチェリー本輪読会同様2時間かな? ## 2021\-09\-23 ### 司会 - @fuga - @yatsuhashi [タイマー](https://timer.onl.jp/) ### ドライバー - @haruguchi-yuma - @shirotamaki ### スタート地点 - 1-3-1 から ### 疑問点・気づき #### Chapeter1 1-3-4まで ```ruby= irb(main):052:0> value = true => true irb(main):053:0> !value => false irb(main):054:0> !value.nil? => true irb(main):055:0> false.nil? => false irb(main):056:0> (value.nil?) => false irb(main):057:0> !false => true irb(main):058:0> (!value).nil? => false ``` - :+1: - @eatplaynap - true、falseというオブジェクトがあるの意識したことがなかった - [class TrueClass \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/class/TrueClass.html) - [class FalseClass \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/class/FalseClass.html) - AtCoderのA問題でXOR使った例 - [提出 \#24880977 \- AtCoder Beginner Contest 213](https://atcoder.jp/contests/abc213/submissions/24880977) - 今の範囲はチェリー本の復習なんだけど、チェリー本で得た知識を確認できたり、新たな切り口でRubyの構造を知れるのは面白い - @yana-gi - 条件式に否定系が入っていた時に`if`と`unless`どちらを使うか迷う - 条件が複数ある場合は`if` - チームの方針に合わせる - `!true.nil?`はtrueになる - メソッドが先に実行されてから演算子が実行されるため - `true.nil?`がfalse - ドライバーのharuguchiさんが話題の具体例を出してくれたりと分かりやすかった - @yatsuhashi - XOR(Exclusive or):排他的論理和 - 片方が真、片方が偽の時真になる - 配列の減算は、内部的に`eql?`を実行してobject_idを比較している - nilとfalseが偽、それ以外は真 - @haruguchi-yuma - Rubyはif文も式だから評価結果を変数に代入できるのはいつも便利だなぁと思います! - `!object.method`は先にメソッドが評価されてから!で反転されるというのは言われてみればそうだなと思うけど、実際今日コード書いてみたときは結構びっくりした - @fuga - 演算子とメソッドの実行順序、すごく勉強になった - `!`はメソッドが実行された結果に対しての否定になる - `if`と`unless`は対称の条件式だけど、利用頻度は対称ではない - 単純な条件式ならunlessでも良い - 複数の条件だったり、少しでも複雑性があればifの方が良さそう - @isshi-hasegawa - 排他的論理和はこれ→`^` - [Exclusive or \- Wikipedia](https://en.wikipedia.org/wiki/Exclusive_or) - メソッドと演算子ならメソッドの処理が先に行われる - `!value.nil?`だと先に`value.nil?`が処理される - `unless`は無理して使うこともないと思った - `if`で書くより明示的であるケースをたまたま発見すれば使えば良いのかな #### Chapeter1 1-3-6まで - @eatplaynap - 日本の各都道府県の人口数を扱うデータで、ハッシュと配列の違いを説明するの、ハッシュの利点が分かりやすいと思った - 北海道〜沖縄まで北から順番に並べられている配列だと、東京の人口を知りたいとき、全体の中で東京が何番目なのか自分で事前に調べる必要がある - Integerをキーにするハッシュ、検索しづらいしハッシュである利点が見いだせないと思ったが、`group_by`メソッドで複数のクラスのインスタンスのidなどをキーにしてまとめる例で、なるほど便利な場面もあるかもと思った - @yatsuhashi - tokyoとkanagawaの値の数字なんだろうと思ったら人口だった - @fuga - 配列もハッシュもめっちゃ使うので、細かい挙動まで知っておくと強いと思った - Enumerableを読み解いていくと良さそう - @isshi-hasegawa - `Enumerable#group_by`メソッド、返り値ごとにハッシュでグループ化してくれるので便利そう - [Enumerable\#group\_by \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/group_by.html) - ハッシュのキー表記のところ、深堀りするにしても少し時間取り過ぎたかな〜 - @shirotamaki - ハッシュの表記は、キーと値の区切りにコロンを使うケースが一般的。 - `ハッシュオブジェクト.values` `ハッシュオブジェクト.keys` でハッシュの値とキーだけを取得することができる。 - @kawase (ラジオ参加) - `keys`メソッドと`values`メソッドは知らなかったのでいい勉強になりました。 ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - 復習の部分で深堀りしなくてもよさそうなところは司会や主催者のYatzさんの裁量で切り上げてもらうのがいいかも - 自分は結構そうやってたので。偉い人に従います🙏 - :sansei: - Yatz is nice, so we will follow!! - @yatsuhashi - fugaさん大活躍 - @isshi-hasegawa - Railsの章が楽しみになってきた - @fuga - なんか今日はいっぱい喋った気がする - 深掘りどこまでするか?はすごく難しいですよね。 - 疑問に思ったら参加者に「ここもうちょっと見ますか?この辺でやめときますか?」と聞いたりするのもよさそう - @shirotamaki - 深堀りする内容は、人によって違うので判断は難しいが、Rubyに関してはこの本のメイン要素ではないので、サラッとさらう感じでいいと思う。 - Railsに入ったら本気を出す! ## 2021\-09\-24 ### 司会 - @yatsuhashi [タイマー](https://timer.onl.jp/) ### ドライバー - @shirotamaki ### スタート地点 - 1-4-1 から ### 疑問点・気づき #### Chapeter1 1-4-3まで - @eatplaynap - 深堀りしないのは難しいが、この本のRubyの記述は紙面を割いてない分(チェリー本と比べ)不親切なので、ちゃんと理解しようとすると泥沼にハマっていく感じがする - チェリー本でどこに書いてあったけ?と確認するくらいでもいいかも…? - :tashikani: - `Class#new`は`allocate`と`initialize`を同時に行っている - `allocate`で作ったインスタンスには引数渡せないけど、セッターメソッドを定義していれば外からデータを渡すこともできる - haruguchi-yuma - デフォルト引数の部分はfamily_nameメソッドとかgiven_nameメソッドとか細かいメソッド定義の内容が省略されているのがわかりずらかったかも。 - 変更が少ないデフォルト引数は後の方に指定しておくと便利だとわかった。(後の方のデフォルト値を変更するのは面倒) - インスタンス変数使うよりアクセサメソッド使う方がいいっていうのはオブジェクト指向設計実践ガイドの最初の方に書いてあった気がする - @yana-gi - 自分たちの深掘り力が高まりすぎて深掘りしてしまいがち - 2.7以降ではprivateメソッドがself.つきで呼び出せるようになる - @shirotamaki - チェリー本のコード例に慣れていたので違和感があるが、現場Railsでは、必ずしもコード例は実行できるようになっていない。 - クラスやメソッドの前後の関係性の説明が省略されているので混乱した。family_name、given_nameなど。 - [Ruby 2\.7 で private メソッドが self\. 付きで呼び出せるようになる \- Qiita](https://qiita.com/pink_bangbi/items/e0bc9b0ed19fad28bdd0) - new は 実は allocate + initialize が実行されてる。[Class\#new \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/method/Class/i/new.html) - @yatsuhashi - 注釈に結構重要なことが書いていたりするので、確認するようにしたい - `private`メソッドは、外部に後悔する気がないことを表明する仕組み - @isshi-hasegawa - 序盤、通信環境が崩壊してたので復習してました ### 振り返り(よかった点・次回に向けての改善点等) - @isshi-hasegawa - Rubyの深淵をのぞく時、深淵もまたこちらをのぞいているのだ。 - @yana-gi - Rubyが進化するが故に数年前の本でも内容が古い場合がある - @eatplaynap - 改訂版チェリー本輪読会やるべきかと思うほど自分のRubyの知識が後退している😇 - いきなりこの本から勉強するのはやっぱり無理、チェリー本読んでてよかった - @shirotamaki - コードは見るだけにしたほうがいいかも - @haruguchi-yuma - プログラミング言語も進化していくので、ある程度変遷も頭に入れて学習しないといけないと感じた。 - 特に、昔の書籍を読むときは感じます。

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully