Как мне проверить, что она голая?
Как упомянуто в ответе ниже (upvoted) jberryman , если у вас есть доступ к удаленному репо, вы можете запустить его:
git rev-parse --is-bare-repository
Это было введено еще коммит 493c774, Git 1.5.3 (сентябрь 2007) и коммит 7ae3df8 Маттиас Ледерхофер (matled
) .
Когда репозиторий пуст, выведите «true», иначе «false».
Вы можете использовать (от git config
):
git config --add push.default current
чтобы указать, что вы хотите использовать по умолчанию.
или
git config --global push.default matching
если у вас много репозиториев.
current: выдвинуть текущую ветку в ветку с тем же именем.
Проверьте также, не сопровождалось ли предупреждением сообщение об ошибке, как в этом ТА вопрос .
Таким образом, ваш репозиторий может быть пустым, но, как сказано в Sensible Git Refspecs :
Когда вы делаете git pull
, fetch,
push
и некоторые другие, вам нужно указать refspec
для текущего репозитория.
A refspec
описывает отображение между локальным опорным и удаленным, так что вы можете нажать (или вытащить и т. Д.) Головку главной ветви и сохранить ее как свою головку ветви происхождения. По сути, это способ отображения веток между репозиториями.
См. Также " концепция общего хранилища в git ".
Примечание: это правда, чем с Git1.6.3 ,:
"git push
" в ветке, которая в настоящий момент извлечена, будет отклонено по умолчанию.
Вы можете выбрать, что должно произойти при таком нажатии, установив переменную конфигурации receive.denyCurrentBranch
в принимающем репозитории.
Но я не думаю, что это то, что вы видите сейчас.
Как уже упоминалось в ", все о" голых "репозиториях - что, почему и как исправить не голый пуш " (внизу)
Чтобы сделать его «настоящим» голым репо, просто удалите все файлы, кроме .git
, затем mv .git/* .; rmdir .git
.
Наконец, отредактируйте файл с именем config
и измените bare = false
на bare = true
.
Так что, если в вашем целевом репо есть config
файл с bare = true
, это будет голое репо.