首页 > 解决方案 > 如何设置 git 以便我可以看到存储库中的内容

问题描述

我正在尝试在服务器上设置 git 存储库。我读了几篇文章,我应该在服务器上有一个裸存储库,并且在本地机器上有非裸存储库。但是当我尝试推送到那个远程存储库(裸)时,我无法做到。

我相信我理解裸存储库的目的是错误的,这导致我面临这个问题。我可以做些什么来让服务器上的存储库用作文件的存储以及管理文件版本控制?(我希望远程服务器也包含这些文件,而不是同步到 github)

我试图克服这个问题的一种方法是在使用创建的服务器上创建另一个非裸存储库,git clone但这对我来说不起作用。

标签: git

解决方案


如果你运行:

git push

在没有额外参数的情况下,Git 需要知道发送什么以及发送哪里

where to send it部分通常是远程的名称。(单个)遥控器的通常名称是origin,因此:

git push origin

告诉 Git 将它发送到哪里:到origin. Git 仍然需要知道要发送什么

当你使用 时git push,你选择一些提交或提交来发送。这里的默认值取决于您的 Git 版本,但您可能拥有 Git 2.0 或更高版本(具有默认值的较早版本会给您一个不同的错误,或者没有错误)。在这种情况下,默认是查找与当前分支名称相关的信息。

(您应该将错误消息放入问题本身,而不是作为稍后添加的评论,表明您在master.)

Git 正在寻找的信息称为upstream。每个分支名称master都可以有一个上游集。要设置上游,您可以使用:

git branch --set-upstream-to=<target>

这里target将指定remote ( )和remote分支名称,在本例中为. 然后,您Git将根据您的 Git 发送的提交(如您的.originmasterorigin master

您引用的错误消息:

use git push --set-upstream README.md master

不是 Git 会打印的东西;它会说:

use git push --set-upstream origin master

这个--set-upstream标志是一个方便标志。您不必这样,就像您不必使用git branch --set-upstream-to. 你可以运行:

git push origin master

每次都告诉你的 Git:在;处调用 Git 。origin给他我的承诺master,并要求他设置他的master

如果你运行:

git branch --set-upstream-to=origin/master

您将当前分支的上游设置为origin/master,这意味着您现在可以git push不带参数运行。或者,如果您运行:

git push --set-upstream origin master

(请注意每个参数的不同拼写!)您的 Git 将以git push origin master与您相同的方式执行初始操作,但如果成功,您的 Git 将运行:

git branch --set-upstream-to=origin/master master

请注意,这与之前略有不同:这会告诉您的 Git 将您的上游设置masterorigin/master,而不是设置您当前分支的上游。由于您当前的分支 master,所以一切都是一样的。


推荐阅读