小ネタ集 (Tips written in Japanese)
"EOFoading LFS objects:"
"error: failed to push some refs to '/"
などのエラーが出た場合の解決方法ローカルレポジトリの .git/config の url として、例えば以下のように directory を指定している場合、
[remote "origin"]
url = /remote_repo/repo_name.git
directory の頭に file://
を付ける。
[remote "origin"]
url = file:///remote_repo/repo_name.git
git LFS の設定が行われている。
git のローカルレポジトリを作成する。
まずは一人で作業を行うため、リモートレポジトリ無しで、ローカルレポジトリのみを作成する。 以下はローカルレポジトリの名前を repo_name とした場合の例、
mkdir repo_name
cd repo_name
git init
(以降、当該フォルダ内で git add, git commit コマンドなどを利用して編集作業を行う。)
git のリモートレポジトリを作成する。
閉鎖ネットワーク内で共同作業を行うなどの理由で、共有フォルダなどの下に repo_name.git という名前のフォルダでリモートレポジトリを作成する。
git init --bare --shared /path/to/repo_name.git
ここで、/path/to/repo_name.git
の先頭には file://
を付けてはならないことに注意!!
(付けるとコマンドを実行した場所に file: という名前のフォルダができ、その下にリモートレポジトリができるため、意図した場所にリモートレポジトリが作成されないことになる。)
また、--shared
には以下のような引数を指定できるため、フォルダの共有範囲に応じて引数を指定する。
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]
ローカルレポジトリに移動し、リモートレポジトリを紐づける
cd repo_name
git remote add origin file:///path/to/repo_name.git
git push --set-upstream origin main
ここで、file://
を付けずに /path/to/repo_name.git
とすると以降の git push --force --set-upstream origin main
で表題のエラーとなる。
紐づけられているリモートレポジトリは以下のコマンドで確認できる。
git remote -v
なお、origin という名前のリモートレポジトリが既に存在している場合に、別のリモートレポジトリの url を追加する場合には、git remote add
ではなく以下を実行する。
git remote set-url origin --add <url>
共同作業者による git clone
git clone file:///path/to/repo_name.git
ここでも、/path/to/repo_name.git
の前に file://
を付けておく。
もし、以下の警告が出た場合、
warning: remote HEAD refers to nonexistent ref, unable to checkout.
デフォルトのブランチ名(例えば master )がリモートレポジトリに存在していないため、以下のコマンドでリモートレポジトリに存在しているブランチを確認し、
git branch -a
例えば、remotes/origin/main
が存在していて、それをチェックアウトする場合は、以下のコマンドを実行する。
git checkout main