Category Archives: Git

Improved Git Experience in Visual Studio 2019

We released the first iteration of a revamped Git experience in Visual Studio to enhance your productivity when working with code on GitHub, Azure Repos, and other hosting services

情報源: Improved Git Experience in Visual Studio 2019 | Visual Studio Blog

Visual Studio 2019 Ver. 16.6 Preview2でGitに関する機能に大幅な変更がありました。今までGitの機能はTeam Explorerの中で使用するものでしたが、今回GitがTeam Explorerより独立した機能となり、Git WindowというGit操作用のツールも追加されました。使用感や出来ることはこれで素のVisual Studio Codeとだいたい同じか、少し気が利くぐらいにはなりました。まぁTFSとはぜんぜん関係が無い場合でもTeam Explorerを使用しなければならず用語含めて大分使いにくい感じでしたが、これですっきりしたと思います。詳しい使い方はリンク先似て確認してください。

Git for Windows 2.26.0リリース

Git for Windows 2.26.0

詳細ダウンロードは上リンク先からどうぞ。

  • Git v2.26.0への追従。
  • OpenSSHでUSBのセキュリティトークンが使用可能に。
  • cURLのアップデート
  • OpenSSLのアップデート
  • GNU Privacy Guardのアップデート
  • その他
  • バグの修正

Introducing Scalar: Git at scale for everyone 

Git is a distributed version control system, so by default each Git repository has a copy of all files in the entire history. Even moderately-sized teams can create thousands of commits adding hundreds of megabytes to the repository every month. As your repository grows,

情報源: Introducing Scalar: Git at scale for everyone | Azure DevOps Blog

まだこれからな感じですが、Git VFSの流れで大きなGitレポジトリを使用する際に高速化するためのツールが登場しそうです。最終的にはGit VFSやそれ用のカスタムGitクライアントは必ずしも必須ではなくなるようです。中規模の開発でも気がつくとGB単位のリポジトリが出来ているケースはあると思うので、(少なくとも見た目だけでも)軽くなるのは大変良いことです。

Git for Windows 2.25.0リリース

Git for Windows 2.25.0

詳細、ダウンロードは一番上のリンクをご確認ください。

Git for Windows 2.24.1(2)リリース

情報源: https://github.com/git-for-windows/git/releases/tag/v2.24.1.windows.2

Gitの脆弱性、CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and CVE-2019-19604に対する対策のパッチが含まれています。 必ずアップデートしてください。

  • Git v2.24.1への追従
  • tig v2.5.0
  • Cygwin 3.0.7ベースのMSYS2ランタイムパッチレベル4の適応
  • git-bash.exeのヘルプ追加
  • その他

詳細は情報源を確認ください。

Git  v2.24とそれ以前の脆弱性について

Learn more about the security vulnerabilities in Git 2.24 and older.

情報源: Multiple Git vulnerabilities in 2.24 and older – The GitHub Blog

パッチが公開されました。WindowsでGitを使う場合は特に問題が出るようです。既にこのパッチが適応されたGit for Windowsがリリースされています。

詳細は情報源を確認ください。

Updates to the Git Commit Graph Feature 

In a previous blog series, we announced that Git has a new commit-graph feature, and described some future directions. Since then, the commit-graph feature has grown and evolved. In the recently released Git version 2.24.0, the commit-graph is enabled by default!

情報源: Updates to the Git Commit Graph Feature | Azure DevOps Blog

Gitのコミットグラフの速度改善に関するお話し。

Git for Windows 2.24.0 リリース

情報源: Git for Windows 2.24.0

注意! git config --system を期待通りに動作するように修正した結果、システム設定は C:\Program Files\Git\etc\gitconfig に保存されるようになります。( C:\Program Files\Git\mingw64\etc\gitconfigC:\ProgramData\Git\config には分割されません。)同様に、システムgitattributesの場所は C:\Program Files\Git\etc\gitattributes となります( C:\Program Files\Git\mingw64\etc\gitattributes は使用されません)。C:\ProgramData\Git\config に対する手動の変更は、手動で移植する必要があります。

主な変更点:

詳細、ダウンロードは情報源まで。

Memo: Git switch / restore

Git Version 2.23.0よりswitchコマンドとrestoreコマンドが追加されました。両コマンドはこれまでcheckoutコマンドが担ってきた機能を整理し、コマンドとして理解しやすくする目的で追加されています。

switch

switchはブランチの切り替えと新規作成の機能を担います。今までのbranchコマンドとcheckout -bを置き換えます(それぞれのコマンドは今でも有効)。

https://git-scm.com/docs/git-switch/2.23.0

masterブランチへの切り替え

$ git switch master

ブランチの切り替えで、ローカルで変更したファイルに問題が起きた場合には次のようにエラーになります。

$ git switch mytopic
error: You have local changes to 'frotz'; not switching branches.

この場合には、-mオプションで3者間マージにする事ができます。

$ git switch -m mytopic
Auto-merging frotz

-cオプションを使用することで新しいブランチを作成できます(-c--createの短縮形です)。

$ git switch -c good-surprises

任意のコミットから新しいブランチを成長させることができます。たとえば、「HEAD〜3」に切り替えて、ブランチ「fixup」を作成します。

$ git switch -c fixup HEAD~3
Switched to a new branch 'fixup'

restore

復元ソースからの内容を使用して、作業ツリーの指定されたパスを復元します。パスが追跡されているが、復元ソースに存在しない場合は、ソースに一致するように削除されます。

https://git-scm.com/docs/git-restore/2.23.0

インデックス内のバージョンと一致するようにすべてのCソースファイルを復元する場合、次のようにできます。

$ git restore '*.c'

現在のディレクトリ内のすべてのファイルをインデックスの内容で復元するには

$ git restore .

インデックスのファイルを復元して、HEADのバージョンと一致させる

$ git restore --staged hello.c

または、インデックスと作業ツリーの両方を復元できます

$ git restore --source=HEAD --staged --worktree hello.c

感想

どこまでわかりやすくなったのかは疑問だが、今までよりは良いと思う。