当我尝试推送到基于文件的存储库时,我得到“远程端意外挂起”。
重新创建步骤:
git init --bare hello.git
git clone hello.git
cd hello
cat>temp.txt
Hello world
ctrl+z
git add .
git commit
git push
这是在Windows 7上使用Git 1.9.2.msysgit.0发生的 如何推送到基于文件的存储库?
hello.git中的配置文件:
[core]
repositoryformatversion = 0
filemode = false
bare = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
答案 0 :(得分:2)
我没有看到你在克隆之前去了目录树中的其他地方。
在裸存储库的克隆中放置一个裸存储库是没有意义的。移动目录树中的其他位置并再次尝试克隆。
基于文件的克隆与任何其他通信渠道没有区别,因此推送通常有效。但它不适用于另一个存储库。
您可能只想拥有一个本地git存储库。这很容易做到:
git init
... add files
git add .
git commit -m "Initial commit"
...done
如果你有第二个存储库,你只会推送,但是你不需要为你的工作提供一个裸存储库,只作为你和你的同伴交换提交的共享目标(如果你没有Github / Bitbucket帐号可以使用)。裸存储库没有工作副本,即您无法签出分支或提交并查看此提交中的文件。你只能看到Git的内部数据结构
答案 1 :(得分:0)
我最终能够使用以下内容推送:
git push origin master
Git的错误消息对我来说不够清楚。我想,因为我克隆了一个裸仓库,Git无法在克隆和裸仓之间找到匹配或共同的分支。所以我明确地告诉了Git。
答案 2 :(得分:0)
原因是,当您克隆它时,您的裸存储库是空的。当您发出git
时,git clone
应该已经警告过您。当您随后提交到新存储库时,您在克隆中创建了一个在裸存储库中不存在的分支master
。因此,当您尝试将该提交推送到上游存储库时,git无法找到与您尝试推送的分支相对应的分支,并且已中止。
不可否认,错误信息有点误导,除了有用之外......