コミットはスナップショットであり差分ではない
Git は紛らわしいという評判です。用語や言い回しが意味するものと、そこから想像する挙動が違ってユーザーが混乱すると言われます。これは、git cherry-pick や git rebase のような「履歴を書き換える」コマンドに最も顕著です。私の経験では、この混乱の根本的な原因は、コミットは 差分 であり順番を入れ替えることができるという解釈にあります。しかし、コミットはスナップショットであって、差分ではありません!
Git は紛らわしいという評判です。用語や言い回しが意味するものと、そこから想像する挙動が違ってユーザーが混乱すると言われます。これは、git cherry-pick や git rebase のような「履歴を書き換える」コマンドに最も顕著です。私の経験では、この混乱の根本的な原因は、コミットは 差分 であり順番を入れ替えることができるという解釈にあります。しかし、コミットはスナップショットであって、差分ではありません!
2020年2月、GitHubがセキュリティに関する問題報告の受付けを開始してから6周年を迎えました。2019年のハイライトと、2020年のこれからの展望をお知らせします。
モバイルアプリケーションから大規模な金融機関のインフラストラクチャーまで、ソフトウェアの構築方法は急速に進化しており、セキュリティは開発者が最初から考慮するものとなりました。開発のペースが速まると、セキュリティ侵害のリスクが大きくなります。セキュリティに気を使っている大企業でさえ、公開されているソースコードにパスワードを残したり、お客様の個人データを漏洩したり、明らかに脆弱性があるのに重要なアプリケーションを本稼働させたり、といったことは珍しくありません。多くの企業が新しいソフトウェアをいち早くリリースしようと懸命になり、ソフトウェアの安全性を保つことに苦労しています。
2019年3月13日に、Rails内で重大な脆弱性が発見されました。本脆弱性に対応するには、GitHub Enterprise Serverを、バージョン2.13.22、バージョン 2.14.16、バージョン 2.15.9、もしくはバージョン 2.16.4以降の、最新のバージョンに至急アップデートしてください。
GitHub.comおよびそれに関連するサービスに脆弱性は存在しません。 GitHub.comは脆弱性情報が公開される前に必要対策を実施しました。GitHubは規定のレスポンスプロセスを実行し、脆弱性が攻撃されないよう対応済みです。 本脆弱性に関するCVEが公開されていますので、こちらも合わせてご確認ください。 CRITICAL 悪意を持ったリクエストを作成することで任意のファイルを読み出し、内容を漏洩させることができてしまう。 本件に関する詳細はRailsのCVEであるこちらをご確認ください: CVE-2019-5418 HIGH 悪意を持ったリクエストによってCPUに高負荷をかけ、DOS攻撃を成立させることができる。 本件に関する詳細はRailsのCVEであるこちらをご確認ください: CVE-2019-5419
2014年にGitHubセキュリティ報奨金プログラムがスタートしてから、5年という月日が経過しました。この間、多くのセキュリティ研究者がGitHubやそのユーザーの安全を守るために行ってきた努力と創意工夫は賞賛すべきものです。GitHubは感謝の気持ちを報奨金プログラムを通して伝えてきました。2018年には報奨金として16万5千USドルが、研究者に支給されました。
素晴らしいアイディアやコードが形になる準備ができたらすぐに、コラボレーターとの会話をスタートするPull Requestを開ける機能があれば良い、とGitHubでは常に思っていました。結果的にPull Requestをクローズすることになったとしても、またはコード全体をリファクタリングすることになってしまったとしても、Pull Requestはコードそのものと同じくらい重要なコラボレーションの要素なのです。
GitHubは、GitHub Desktop 1.6をリリースしました。本リリースでは、オンボーディング、次のステップとして何をすべきかの提案、そしてファイルサイズの制限などの新機能や改良が搭載されています。 GitHub Desktop 1.6のリリースでは、作業が終わった後に「次に何をすべきか」というプロセスに関する疑問がわかりやすくガイドされており、これにより迅速に自分が書いたコードをチームメートとシェアすることが可能になります。さらに、オンボーディングに関するガイダンスと、ワークフローのどのポイントにいるかに応じて、次に何をすべきかの提案をする機能も実装されました。