そして半年が経過していません:バージョン制御システムGit2.29がリリースされました



こんにちは、%username%、今日、すばらしいニュースです。パブリックドメインに、分散制御システムバージョン2.29.0 theGitリリースされました。おそらく、ハブレでは、Gitが依然として最高のシステムの1つであるため、それが何であるかを伝える価値はありません。



新しいリリースには、89人の開発者によって一度に627件の変更が含まれています。カットの下での主な変更点と改善点について説明します。



  • SHA-256 SHA-1 . Git . . , SHA-1 , Git . SHA3-256, SHA2-256, SHA2 Git . , , . , , - — .


  • Gitは、リポジトリの作成時に新しいオブジェクト形式を含める機能を追加しました。


$ git init --object-format=sha256 repo
   Initialized empty Git repository in /home/ttaylorr/repo/.git/
 
   $ cd repo
   $ echo 'Hello, SHA-256!' >README.md
   $ git add README.md
   $ git commit -m "README.md: initial commit"
   [master (root-commit) 6e92961] README.md: initial commit
    1 file changed, 1 insertion(+)
    create mode 100644 README.md
 
   $ git rev-parse HEAD
   6e929619da9d82c78dd854dfe237c61cbad9e95148c1849b1f96ada5ee800810


SHA-1とSHA-256のどちらかを選択することしかできず、1つのリポジトリで異なるハッシュを組み合わせる可能性はありません。



  • gitfetchおよびgitpushコマンドは、ローカルリポジトリと外部リポジトリのブランチ間のリンクを照合するためのルールを拡張する排他的リンク仕様をサポートするようになりました。この機能は、選択するだけでなく、マッピングから一部のブランチを除外する必要がある場合に役立ちます。したがって、このスクリプトを使用して完全なリストを指定する前に、1つの「refs / heads / ref-to-exclude」を除いて、すべての「refs / heads / *」ブランチをチェックアウトする必要がある場合:


   $ git ls-remote origin 'refs/heads/*' |
     grep -v ref-to-exclude |
     awk '{ print $2:$2 }' |
     xargs git fetch origin


  • 現在、例外演算子「^」があります。この演算子を使用した式はテンプレートを受け入れますが、オブジェクト識別子を参照することはできません。new演算子を使用するコマンドは、次のようになります。


   $ git fetch origin 'refs/heads/*:refs/heads/*' ^refs/heads/ref-to-exclude


さらに、設定で除外を使用できます。



   $ git config --add remote.origin.fetch ^refs/heads/foo


  • 「gitshortlog」には、作成者やコミット者だけでなく、追加フィールド「Reviewed-by:」と「Coauthored-by:」のコンテンツによってコミットをグループ化する機能が追加されました。したがって、最も積極的にレビューしている開発者のリストを表示する必要がある場合は、次のコマンドが必要です。


 $ git shortlog -ns --group=trailer:reviewed-by v2.28.0.. | head -n5
    40  Eric Sunshine
    10  Taylor Blau
     4  brian m. carlson
     2  Elijah Newren
     1  Jeff King


  • 起動時に複数の--groupステートメントを指定し、-formatオプションを使用できます。したがって、共著者または寄稿者を追跡するには、次のように指定する必要があります。


   $ git shortlog -ns --group=author --group=trailer:co-authored-by
   $ git shortlog --format="...helped %an on %as" --group=trailer:helped-by v2.28.0..v2.29.0


  • gitマージ操作中に競合が発生した場合、コミットメッセージのヘッダーが括弧で囲まれ、Git診断メッセージからのコミットからのデータを明示的に分離するようになりました。
  • 開発者は、2.27リリースで無効にされたGit通信プロトコルの2番目のバージョンを復活させました。したがって、安定性の問題を引き起こすバグが修正されました。
  • 「--first-parent」オプションがgitbisectコマンドに追加されました。これは、リビジョンを検出するために使用され、既知の作業リビジョンと問題が発生したリビジョンの間でコミットの選択を変更します。


ここで すべてのイノベーションを見ることができます






All Articles