我目前正在尝试将一些文件保存在一个裸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>
push
到origin 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做到这一点。怎么解决这个问题?
答案 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中,它引用为“上游”或“跟踪”。
如果您想在没有克隆的情况下将提交推送到远程。您可以将远程存储库添加为新远程存储库,签出要提交的分支并使其跟踪远程分支,将修改添加到此新分支并执行推送。