“fork”和“push upstream”对GitHub意味着什么?

时间:2011-04-26 01:54:21

标签: git github

我目前正在与我的大学教授一起使用GitHub进行项目。由于我不太熟悉GitHub,我无法理解他寄给我的指示。

我希望有人能为我解释这些并帮助我理解它。

  

学生应使用GIT Hub并使用   Project7分支。叉他自己的   存储库和推新开发   分支上游到主项目   存储库

我对GitHub及其存储库有所了解,现在我正在读取分支机构。但我仍然无法理解如何使用命令实现上述指令。

3 个答案:

答案 0 :(得分:6)

说明的第一部分非常清楚。你需要:

  • 登录GitHub,转到教授的存储库,然后单击“Fork”。
  • 找到存储库fork的SSH URL,并使用以下内容在本地克隆:

    git clone git@github.com:whoever/whatever.git
    
  • 如果您运行git branch -r,您应该会看到您现在已经拥有了远程跟踪分支origin/Project7
  • 您需要在该分支上工作,因此您需要基于origin/Project7创建本地分支。你可以用:

    来做到这一点
    git checkout -b Project7 origin/Project7
    
  • 现在您应该像往常一样进行开发并创建提交以推进Project7分支。

现在对我来说有点不清楚:

  

[...]将新开发的分支上游推送到主项目库

这可能意味着:

(a)你应该把你的分支推回到GitHub上你自己的分叉存储库。您可以使用以下内容执行此操作:git push origin Project7

另一方面,它可能意味着(b)您的教授已将您作为协作者添加到GitHub上的存储库中,并希望您推送到其存储库中的新分支。在这种情况下,您可能会执行以下操作:

git remote add professor git@github.com:professor/whatever.git 
git push professor Project7:WarDoGG-Project7

这会将你的分支Project7推送到教授名为WarDoGG-Project7的知识库中的新分支。或者他可能希望你通过推回原来的Project7来推进他的分支,在这种情况下你可以错过命令的:<destination-branch>部分。

我认为情况(a)更有可能,但你应该检查一下。

答案 1 :(得分:2)

我从指示中理解:

1)您应该转到主项目github页面(登录后),然后单击“Fork”右上角的按钮。有了这个,您已将主项目分配到您的github帐户。

2)将您的分叉项目克隆到您的计算机:

3)在您当地的git存储库中:> git checkout -b Project7 origin/Project7

4)处理代码......

5)将您的更改推送到您的github仓库。

6)在github上向主仓库发出拉取请求。

答案 2 :(得分:1)

他告诉你下载存储库,然后切换到Project7分支,并分叉你自己的分支。你应该能够按照这些说明克隆一个分叉的仓库(就像普通的克隆一样,除了你必须先在github上分叉):

http://help.github.com/fork-a-repo/

然后,在克隆之后,切换到Project7分支

git checkout -b newlocalbranchname origin / branch-name

然后,确保你回到你的分支:

git push origin branch-name