无法将提交推送到git

时间:2017-03-11 05:07:32

标签: git github version-control

我'我是git的新手。我'我正在贡献一个git中的开源项目。我分叉并创建了一个分支。它是一个android项目。然后我克隆它来创建一个本地副本并将其保存在一个文件夹中。我在android工作室打开它,进行了必要的更改。然后我做了以下操作:

git add <the file name where i made changes>

git commit -m <message>

在这一点上,我&#39;我仍然感到困惑的是改变在哪里?我假设它保存在我的计算机中的本地副本中。然后我尝试推它,它给了我错误:

git push upstream master
Username for 'https://github.com': Midhun07
Password for 'https://Midhun07@github.com': 
remote: Permission to opendatakit/collect.git denied to Midhun07.
fatal: unable to access 'https://github.com/opendatakit/collect.git/': The requested URL returned error: 403

但是这里opendatakit/collect.git是git试图推动变化的地方。但我想将更改推送到master而不是upstream/master。但当我尝试git push master时,它会让我跟随错误。

fatal: 'master' does not appear to be a git repository
fatal: Could not read from remote repository.

与上游/主站相比,我的另一个问题是我的主分支落后于9次提交。我&#39;我都很困惑。请指导我。

2 个答案:

答案 0 :(得分:1)

upstream是您分叉的原始项目, https://github.com/opendatakit/collect。 只有项目的维护者可以推动这一点。

如果您想将本地更改推送到GitHub, 然后推到你的前叉, https://github.com/Midhun07/collect。 它应该被称为origin, 不是upstream。所以将命令改为:

git push origin master
  

此时我仍然感到困惑的是这些改变在哪里进行了?

到您当地的Git存储库。 如果您不清楚这一点,那么您需要learn多一点Git。

  

与上游/主站相比,我的另一个问题是我的主分支落后于9次提交。我&#39;我都很困惑。请指导我。

这意味着原始项目已经发展: 自上次与它同步以来,其他人已经添加了9次提交(分叉)。 如果您想在本地克隆中获取这些提交, 你可以改变:

git fetch upstream master
git rebase upstream/master

小心,可能会有冲突。 您可以在Git book

中详细了解有关变基和解决冲突的信息

答案 1 :(得分:0)

Github上的典型场景就是这样。

  1. 您找到了一个公共存储库,例如github.com/opendatakit/collect
  2. 你分叉一份。现在你有自己的副本,例如github.com/Midhun07/collect
  3. 您将其克隆到计算机上即可工作。默认情况下,git将为您的存储库命名远程origin
  4. 通常的做法是为您分叉的项目添加第二个遥控器,并将其命名为upstream
  5. 这就是我猜你在这里所做的事情(特别是因为当我看到Github时你似乎已经完成了这一点)。

    您没有权限在Github上写入opendatakit的副本。这就是为什么你首先分叉自己的副本。

    你需要做的是推送你的分叉副本,而不是他们的。

    git push origin master
    

    您可以使用remote命令查看您拥有的不同遥控器以及他们尝试推送的网址。

    git remote -v
    

    可能看起来像这样。

    origin  git@github.com:Midhun07/collect.git (fetch)
    origin  git@github.com:Midhun07/collect.git (push)
    upstream    https://github.com/opendatakit/collect.git (fetch)
    upstream    https://github.com/opendatakit/collect.git (push)