推送到裸git存储库,而无需事先克隆它

推送到裸git存储库,而无需事先克隆它,git,git-push,Git,Git Push,我目前正在尝试将一些文件保存在裸git存储库中,如下所述: 但是,我正在使用Git for Windows进行尝试,而不是在Linux机器上。创建了裸git存储库,但我正在努力使推送正常工作。这就是我所做的: username@hostname MINGW64 ~/Desktop $ mkdir .myconf username@hostname MINGW64 ~/Desktop $ git init --bare "/c/Users/username/Desktop/.myconf" I

我目前正在尝试将一些文件保存在裸git存储库中,如下所述:

但是,我正在使用Git for Windows进行尝试,而不是在Linux机器上。创建了裸git存储库,但我正在努力使
推送
正常工作。这就是我所做的:

username@hostname MINGW64 ~/Desktop
$ mkdir .myconf

username@hostname MINGW64 ~/Desktop
$ git init --bare "/c/Users/username/Desktop/.myconf"
Initialized empty Git repository in C:/Users/username/Desktop/.myconf/

username@hostname MINGW64 ~/Desktop
$ alias config="git --git-dir='/c/Users/username/Desktop/.myconf' --work-tree='/c/Users/username/Desktop/'"

username@hostname MINGW64 ~/Desktop
$ config config status.showUntrackedFiles no

username@hostname MINGW64 ~/Desktop
$ config status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)

username@hostname MINGW64 ~/Desktop
$ config add test.txt

username@hostname MINGW64 ~/Desktop
$ config commit -m "Added test file."
[master (root-commit) a587ec1] Added test file.
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
到目前为止,一切正常。但是,当我尝试推送时,会发生以下情况:

username@hostname MINGW64 ~/Desktop
$ config push
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>
显然,git想要一个推送目的地

我还没有看到设置这样一个目的地是链接描述(或任何衍生博客文章)中的必要步骤,我不确定如何使用Git for Windows实现这一点。如何解决这个问题?

您需要定义一个Git,以便Git知道推送到哪里。默认的
remote
称为
origin
,是Git要推送到的url

例如,如果您试图推送到Linux内核,则命令如下:

git remote add origin https://github.com/torvalds/linux.git

您需要告诉git远程存储库在哪里。使用:

config remote add origin "<path>"
配置远程添加源“”
其中路径是url或目录


如果您想了解为什么.myconfig不是一个远程repo,您可以通过如下方式推式阅读:

对于git等分布式VCS,推式是本地分支和远程分支之间的同步机制。在推送之前,必须指定本地分支和远程分支的连接,在git中,它引用为“上游”或“跟踪”


如果要在不克隆的情况下将提交推送到远程。您可以将远程存储库添加为新的远程存储库,签出要提交的分支并使其跟踪远程分支,将您的修改添加到此新分支并进行推送。

正如错误所述,您需要一个远程存储库才能推送。是的,的确如此。然而,无论是黑客新闻上的帖子,还是任何衍生的博客帖子都不需要这一步,所以乍一看这似乎很奇怪。正如我在另一篇评论中所说的:对于Windows系统上的本地裸Git存储库,什么是正确的
remote
url?没有。如果是本地repo,则无需将其推送到任何地方。正如我在下面的评论中所写,正确的url是文件系统路径。对于Windows系统上的本地裸Git存储库,正确的
远程
url是什么?@so23尝试使用Windows服务器的主机名确实,非常感谢。在黑客新闻帖子的上下文中,必须先执行
配置远程添加源代码/c/Users/username/Desktop/.myconf/“
,然后执行
配置推送--设置上游源代码主程序
。我认为这不正确。myconf的作用与.git通常的作用相同。如果你推动它,你将推动回购回归自身。如果你只是想要一个本地回购,那么你就完成了,不需要推动。好吧,我可以确认这确实是会发生的事情,git不会允许你这么做。如果您有一个远程存储库,您可以将其设置为“我的答案”。否则就不需要推到任何地方。我想这个链接只是以GitPush为例。
config remote add origin "<path>"