我收到了警告
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,远程机器是旧版本。
答案 0 :(得分:37)
这听起来不是你的问题,但要真正回答你在标题中提出的问题:你可以跑...
$ git rev-parse --is-bare-repository
...查询回购是否裸露。返回'true'或'false'。
答案 1 :(得分:28)
如何检查它是否裸露?
正如answer below中提到的那样{upvoted},如果您有权访问远程仓库,则可以在其中运行:
git rev-parse --is-bare-repository
早在jberryman(2007年9月)和commit 493c774, Git 1.5.3由commit 7ae3df8引入。
当存储库裸露时为“true”,否则为“false”。
您可以使用(来自Matthias Lederhofer (matled
)):
git config --add push.default current
指定默认情况下要推送的内容。
或:
git config --global push.default matching
如果您有许多存储库。
current:将当前分支推送到同名分支。
同时检查警告是否后面没有此git config
中的错误消息。
所以你的目的地回购可能只是一个,但正如SO question所说:
当您执行
git pull
,fetch,
push
和其他一些操作时,您需要为当前存储库指定refspec
。
refspec
描述了本地引用和远程引用之间的映射,因此您可以推送(或拉取等)主分支头并将其存储为原始分支头。基本上它是一种在回购之间映射分支的方法。
另请参阅“Sensible Git Refspecs”。
注意:它来自concept of bared shared repository in git,
“
git push
”进入当前已检出的分支将被默认拒绝 您可以通过在接收存储库中设置配置变量receive.denyCurrentBranch
来选择在此类推送时应该发生的事情。
但我不认为这就是你现在所看到的。
如“Git1.6.3”(在底部)
中所述要将其设为“真正的”裸仓库,只需删除
.git
以外的所有文件,然后删除mv .git/* .; rmdir .git
。
最后,修改名为config
的文件,将bare = false
更改为bare = true
。
因此,如果您的目标个户网站的config
文件为bare = true
,那么这是一个简单的回购邮件。
答案 2 :(得分:3)
您收到的消息意味着您的远程存储库为空(与裸机无关)。当您第一次进入远程存储库时,您需要指定要推送的内容:
git push origin master
这会将您当前的主分支推送到远程存储库。 git push
的后续调用将推送“匹配”分支,即如果远程存储库中存在“主”分支,则将推送本地“主”分支。
答案 3 :(得分:1)
试
$ git config --get core.bare
答案 4 :(得分:0)
打开config
目录中的.get
文件,然后查找bare = true
。