今日、私は初めて(少なくとも初めて見たときは)Gitからの次のコメントに出くわしました。
Mikes-Mac$ git Push
Locking support detected on remote "Origin". Consider enabling it with:
$ git config 'lfs.https://github.com/<my_repo>.git/info/lfs.locksverify' true
Everything up-to-date
Mikes-Mac$
これは何ですか Locking support
?これは、LFS(大容量ファイルストレージ)の mutex locking のようなものですか?もしそうなら、gitで何かを動作させることは絶対に不可欠ではありませんか? (最低限、ログ履歴の「順序付け」は他にどのように確立できますか?最悪の場合、同時書き込みによってバイナリファイルが破損することはありませんか?)
私は最近、このリポジトリに対して何も別のことをしませんでしたし、LFSで確立した他のリポジトリと比較してこのリポジトリで別のこともしませんでした。
したがって、これは新しい機能をお知らせするために「世界」に提供される新しいコメントであると想定しています。
しかし、Google検索もquick彼らのドキュメントを検索しても、これを説明するものは何もありませんでした。だから、私は疑問に思っています:
Git LFSのロックのサポートについては、こちらで説明しています https://github.com/git-lfs/git-lfs/wiki/File-Locking .
Git LFS v2.0.0には、ファイルロックの初期リリースが含まれています。ファイルロックを使用すると、開発者は更新中のファイルをロックして、他のユーザーが同時にファイルを更新できないようにすることができます。 Gitリポジトリで同時に編集すると、マージの競合が発生します。これは、大きなバイナリファイルでは解決が非常に困難です。
.gitattributes
のファイルパターンがロック可能になると、Git LFSはローカルファイルシステム上でそれらを自動的に読み取り専用にします。これにより、ユーザーがファイルを最初にロックせずに誤って編集することを防ぎます。
Git LFSは、プッシュ時に別のユーザーによってロックされたファイルを変更していないことを確認します。ファイルロックは初期リリースであり、APIを実装しているLFSサーバーはほとんどないため、Git LFSはロックされたファイルを検証できない場合でもプッシュを停止しません。次のようなメッセージが表示されます。
$ git lfs Push Origin master --all Remote "Origin" does not support the LFS locking API. Consider disabling it with: $ git config 'lfs.http://git-server.com/user/test.locksverify' false Git LFS: (0 of 0 files, 7 skipped) 0 B / 0 B, 879.11 KB skipped
$ git lfs Push Origin master --all Locking support detected on remote "Origin". Consider enabling it with: $ git config 'lfs.http://git-server.com/user/repo.locksverify' true Git LFS: (0 of 0 files, 7 skipped) 0 B / 0 B, 879.11 KB skipped
そのため、ある意味では、それを助言的ミューテックスと見なすことができます。
git lfs lock
でファイルを「ロック」すると、編集できるようになり、リポジトリサーバーは編集中であることを認識します主に、マージの競合を防ぐために大きなファイルを管理するチームを支援するために追加されます。