Git LFS lockを使うためのエイリアス メモ
Git LFS(2.4系)のロック機能は、以下の点であんまりイケてないです。
- 自分の持ってるすべてのロックを一気に外す方法がない
- 外すのに軽いシェル芸が要る
-
git lfs locks | grep [my-git-user-name] | cut -f 1 | xargs git lfs unlock
みたいな
- lock/unlockコマンドの引数にファイルを1つしか指定できない
- 例えば、
git lfs unlock A.xlsx B.xlsx
すると、エラーを吐かずにA.xlsxだけロックが外れる。
- 例えば、
- lock/unlockのコマンドに lfs が入っていて、長い。 ex)
git lfs lock A.xlsx
せめてコマンドインターフェースだけでも解決するためaliasを書いたので共有しておきます。
git.config
[alias]
lock = "!f(){ git pull ; for file in \"$@\"; do git lfs lock $file; done };f"
unlock = "!f(){ for file in \"$@\"; do git lfs unlock $file; done };f"
unlockall = "!f() { git lfs locks | grep [my-git-user-name] | cut -f 1 | while read -r file; do git lfs unlock $file; done; };f"
locks = "!f() { git lfs locks; };f"
# [my-git-user-name] は、自分のアカウント名に書き換えてください。
$ git lock A.xlsx B.xlsx #2つのファイルのlockを取る(ファイル数だけlockリクエストが走る)
$ git unlock A.xlsx B.xlsx #2つのファイルのlockを外す
$ git unlockall #自分の持っているすべてのlockを外す
$ git locks #全員のlock状況を見る
GitHub+Bashのみでテストしてあります。
Author And Source
この問題について(Git LFS lockを使うためのエイリアス メモ), 我々は、より多くの情報をここで見つけました https://qiita.com/gecko655/items/89085bad77fb83c98267著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .