Git错误:'upstream'似乎不是git存储库

时间:2015-10-02 17:10:05

标签: git github

我对Git很新,所以面对一些正确使用的问题。 这是我的情景。

我有一个我的主存储库的分支,并将其克隆到我的本地。 在那里,我有2个分支用于不同的修复。

当我提交时,我在git中看到了一个声明 - 我们说我提前3次提交,并且约有20次提交。

我知道我的fork与master不同步。另外我也需要合并两个分支(或者我应该这样做吗?)

我使用Windows客户端进行同步。但似乎我没有遵循Git的方式。所以,我尝试按照https://help.github.com/articles/syncing-a-fork/中描述的步骤进行操作,这些步骤给出了如下错误(我正在使用Windows)。

 $>git fetch upstream
 fatal: 'upstream' 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.

我有点困惑。 请帮助我在这种情况下应该遵循的步骤。

@HuStmpHrrr

很抱歉在评论中添加详细信息 我将修改问题的可读性

执行命令:

  $>git remote  returning two values
  acme-development (which the name of my actual/main repository, from where I forked) and
  origin

添加更多信息。

进行获取后,我尝试将origin / master合并到我的主人身上 请看截图 enter image description here

但是,如果我登录我的Github在线帐户,它会说一个不同的故事。

enter image description here

我的git客户端说本地仓库是最新的。 但在线git表示,我们有42个提交,7个提交。

5 个答案:

答案 0 :(得分:38)

您链接的文章(尽管自您提出以来可能已更改)以对https://help.github.com/articles/configuring-a-remote-for-a-fork/的引用开头。如果您完成此操作,您将有一个名为upstream的新远程存储库指向您分叉的原始存储库,git fetch upstream将起作用。

答案 1 :(得分:5)

所以有一些事情需要澄清:

  • 上游是存在的远程存储库(或存储库)的概念名称。大多数项目只有一个上游存储库。

  • 上游存储库的名称因项目而异,但按照惯例,来源

那就是说,我愿意打赌你得到了你的上游回购的名称和上游回购概念的混淆,你应该执行 git fetch origin 。与git remote核实;使用该列表中的相应名称。

但是,如果您只有一个上游回购,执行git fetch将完成同样的事情。

答案 2 :(得分:3)

这是我今天要解决的同一问题的步骤

下面的步骤将使您能够链接git fork和原始存储库,以便您可以在更新原始存储库时随时提取更改。 转到github上存储库的页面,然后单击fork(如果尚未这样做)。假设您从https://github.com/account/repo-name分叉了一个名为 repo-name 的存储库,那么您可以使用https://github.com/your-user-name/repo-name之类的东西在自己的帐户中获得该存储库的副本(分叉),然后运行以下命令在您的终端上

  • git clone https://github.com/your-user-name/repo-name.git
    
  • cd repo-name
    
  • git remote add upstream https://github.com/account/repo-name.git
    
  • git pull upstream master
    
  • git branch --set-up-stream-to=upstream/master
    
  • git pull
    

当您进行更改并希望将其集成到原始代码库中时,为了将更改添加到原始存储库中,您必须首先在github上推送到fork,然后发送一个pull请求,然后将其进行验证并合并到代码库。步骤如下。

  • git add .
    
  • git commit -m "commit message"
    
  • git push origin master
    

然后在github上访问您的帐户,然后单击您的存储库名称。在页面上,您会看到一个创建拉取请求的链接。单击链接并创建拉取请求,然后由维护者进行审核和合并。

答案 3 :(得分:2)

只需在终端上运行以下命令

$ git remote add upstream {your upstream repository link here}

运行此命令后:

git remote -v

此命令将显示您的 github 存储库路径和上游存储库路径。

示例输出:

origin  https://github.com/ {Your Github username} / {repository name} (fetch)
origin  https://github.com/ {Your Github username} / {repository name} (push)

upstream    https://github.com/ {Upstream github username} / {repository name} (fetch)
upstream    https://github.com/ {Upstream github username} / {repository name} (push)

答案 4 :(得分:1)

您必须获得git项目的分支 然后:

git远程添加上游https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

您可以在上游进行git fetch