2011-09-15 13 views
3

我刚开始使用Github,并在本地PC上实践它。然后我找到了一个Github项目并开始修复它的bug。如果我想在另一个补丁被接受后处理另一个bug,该怎么办?

  1. 我分叉项目并将其下载到我的电脑
  2. 我开了一家分店。开始修复该分支。
  3. 我将补丁分支推回到Github
  4. 切换到Github上的该分支并将开发请求发送给开发人员。
  5. 补丁已被接受。

但现在我想工作的第二个错误。我如何在Github上更新我的分支并将我的本地副本更新到最新的正式版本(使用我的补丁程序和其他一些其他补丁程序)?

我是否需要在我的本地和Github上关闭我的补丁分支?我是否单独关闭它们?

或者我只是删除我的叉子,并再次重新绑定一个新的叉子?

回答

2

假设您的分支机构位于git://github.com/lulalala/foo.git,上游回购区域位于git://github.com/someuser/foo.git

首先,您需要将其存储库添加为远程。

git remote add upstream git://github.com/someuser/foo.git 

现在您已经添加了他们的存储库,您可以获取他们的分支。

git fetch upstream 
git branch -a # Look, you've got their branches!* 

签出他们的主分支,然后重新绑定到你的。

git checkout upstream/master 
git rebase master 

现在推回给你的叉子在GitHub上

git push origin master 

瞧!

* You don't actually have their branches, you need to check them out to have a physical copy. 
+0

谢谢!当我结账上游/主人时,我收到消息“你处于'分离头'状态。”然后我在“(不分支)”。这是预期的吗? – lulalala

+0

@lulalala正确 – basicxman

+0

rebase之后,我在'(无分支)'。推动它会产生消息'一切都是最新的'。而我的Github分支仍然没有改变。 – lulalala

相关问题