我对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合并到我的主人身上 请看截图
但是,如果我登录我的Github在线帐户,它会说一个不同的故事。
我的git客户端说本地仓库是最新的。 但在线git表示,我们有42个提交,7个提交。
答案 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