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

时间:2016-02-18 00:41:07

标签: git git-push

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

https://news.ycombinator.com/item?id=11071754

但是,我正在尝试使用Git for Windows,而不是Linux机器。裸git存储库已创建,但我很难让push正常工作。这就是我所做的:

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

到目前为止,一切都运作正常。但是,当我尝试push时,会发生这种情况:

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>

pushorigin master也不起作用:

username@hostname MINGW64 ~/Desktop
$ config push origin master
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

显然,git想要一个推送目的地。

我没有看到设置这样的目的地是链接描述中的必要步骤(也没有在任何派生的博客帖子中),我不确定如何使用Git for Windows做到这一点。怎么解决这个问题?

3 个答案:

答案 0 :(得分:1)

您需要定义remote,以便Git知道要推送到哪里。默认remote名为origin,将成为Git推送的网址。

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

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

答案 1 :(得分:0)

你需要告诉git远程存储库的位置。使用:

config remote add origin "<path>"

其中path是url或目录。

如果你想了解为什么.myconfig不是一个远程仓库,你推动阅读这样的东西:http://www.sbf5.com/~cduan/technical/git/

答案 2 :(得分:0)

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

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