Подтвердить что ты не робот

Как проверить, нет ли репозитория?

Я получаю предупреждение

warning: You did not specify any refspecs to push, and the current remote
warning: has not configured any push refspecs. The default action in this
warning: case is to push all matching refspecs, that is, all branches
warning: that exist both locally and remotely will be updated.  This may
warning: not necessarily be what you want to happen.
warning:
warning: You can specify what action you want to take in this case, and
warning: avoid seeing this message again, by configuring 'push.default' to:
warning:   'nothing'  : Do not push anything
warning:   'matching' : Push all matching branches (default)
warning:   'tracking' : Push the current branch to whatever it is tracking
warning:   'current'  : Push the current branch

который является (я думаю) предупреждением о том, что пульт не голый. Тем не менее я намеревался, чтобы пульт был открытым, а каталог (который находится в форме foo.git) не имеет в нем директории .git. Как проверить, что он голый?

Дополнительная информация. Удаленный репозиторий находится на компьютере с git 1.5.4.3, а локальный репозиторий имеет git 1.6.3.3. Обе машины - Ubuntu - локальный - Karmic Koala, удаленный - более старая версия.

4b9b3361

Ответ 1

Как проверить, что он голый?

Как уже упоминалось в ниже (), 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: нажмите текущую ветвь на ветку с таким же именем.

Также проверьте, не сопровождалось ли предупреждением сообщение об ошибке вроде SO.


Итак, ваш репозиторий назначения может быть голым, но, как сказано в Разумный 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, он является открытым репо.

Ответ 2

Не похоже, что это была ваша проблема, но чтобы ответить на вопрос, который вы задали в названии: вы можете запустить...

$ git rev-parse --is-bare-repository

... запрашивать, является ли репо открытым или нет. Возвращает "true" или "false".

Ответ 3

Сообщение, которое вы получаете, означает, что ваш удаленный репозиторий пуст (что не имеет ничего общего с тем, что он голый). При первом нажатии в удаленный репозиторий вам нужно указать, что нажать:

git push origin master

Это приведет к тому, что ваша текущая ведущая ветвь будет удалена в удаленный репозиторий. Последующие вызовы git push будут толкать "соответствующие" ветки, т.е. Если theres "ведущая" ветвь в удаленном репозитории, то ваша локальная "ведущая" ветвь будет нажата на нее.

Ответ 4

Откройте файл config в каталоге .get и найдите bare = true.

Ответ 5

попробовать

 $ git config --get core.bare