克隆并推回到 .git 文件,而不是 .git 目录

cloning and pushing back to a .git file, not .git directory

好的,我知道 error: failed to push some refs to 是 git 中的一个常见问题,而且网上有很多 material 都在讨论这个问题,但没有任何帮助。那么让我解释一下这个问题:

我得到的是 name.git 文件,而不是文件夹。我做到了:

git clone name.git name 这用代码生成了我的 name 目录 我致力于此,做出了一系列承诺。没有什么可以承诺的了。 (这一切都在我的本地机器上,所以同时没有人提交,但是......)我仍然做了 git pullAlready up to date。那么好吧,git push 它会响应 error: failed to push some refs to.

现在,我需要让其他人可以使用我的提交。我知道,我可以只 rar/zip 我的 name 目录,但我实际上想要一个 name.git 文件来回馈,其中包括我的提交日志。有人知道发生了什么事吗?

我想我现在明白了。

您可能收到了一个 "git bundle",而一个 git 包裹显然不喜欢被推到。

借鉴自:http://rypress.com/tutorials/git/tips-and-tricks

注意 - 假设您可以使用 Linux-esque touch 命令创建一个普通的空文件

创建新项目:

mkdir foo
cd foo
touch hello
git add .
git commit -m "first commit"

创建捆绑包:

git bundle create ../foo.git master

使用捆绑包:

cd ..
git clone foo.git foo-clone -b master
cd foo-clone
touch world
git add .
git commit -m "second commit"

尝试推送捆绑,但失败:

git push origin master

error: failed to push some refs to [foo.git]*

* foo.git 路径实际上被展开了

因此,也许您还可以捆绑您的存储库并将其发回上游。

Addition - 您也可以向上游提交“git-format-patch”样式的补丁;它会比一捆轻得多。

或者,您和您的团队可以探索 GitHub, GitLab, and BitBucket

等解决方案

注意 - GitLab 和 BitBucket 有 "local install, total privacy".

的选项