我'我是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;我都很困惑。请指导我。
答案 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上的典型场景就是这样。
github.com/opendatakit/collect
github.com/Midhun07/collect
origin
。upstream
。这就是我猜你在这里所做的事情(特别是因为当我看到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)