用于“就地”的库的Git工作流程

时间:2014-06-03 09:28:16

标签: git github

我直接从github安装了一些库(在我的例子中是modular-boost超级项目)。当我想要改变的时候,我想:在github上分叉主分支,切换到我的分支,更改,测试,提交到我的分支,推送到我的分支,发送pull-request,保持我的分支到-date with master直到我的pull-request被接受,删除我的fork并切换回origin master。

所以:

  1. 我在github中分叉库存储库
  2. 我将我的fork作为新的远程添加到origin存储库的本地副本git remote add name git@github.com:user/libname.git
  3. 我从遥控器拉出来检查一切正常,没有变化。
  4. 我做了一些更改git add -u; git commit -m "..."
  5. 我得到:[detached HEAD 7fcasdb0] ...为什么?
  6. 如果我尝试推送我的叉子,我会发现一切都是最新的。
  7. 我做错了什么,我应该做些什么呢?

1 个答案:

答案 0 :(得分:1)

您的步骤评论:

  1. 我在github(ok)
  2. 中分叉库存储库
  3. 我将我的fork作为新的远程添加到我origin存储库的本地副本git remote add name git@github.com:user/libname.git(ok)
  4. 我从遥控器拉出来检查一切正常,没有变化。 (很好,如果您的本地仓库已经是最新的,则不会下载任何更改)
  5. 我做了一些更改git add -u; git commit -m "..."(您在执行git checkout name/mastergit add之前执行了git commit吗?如果是,您将进入detached HEAD模式提交后)
  6. 我明白了:[detached HEAD 7fcasdb0] ...为什么? (一般来说,当detached HEAD直接指向提交时,你得到HEAD模式。不建议直接在远程分支上开始工作,因为远程分支不能在本地更改。从一个新的本地分支开始创建远程分支并在此本地分支上提交您的工作)
  7. 如果我尝试推送到我的分支,我会发现所有内容都是最新的(您无法使用detached HEAD模式下的默认参数推送您的工作)
  8. 推荐步骤:

    1. fork in github
    2. 将远程仓库添加到origin repo
    3. 的本地副本
    4. git pull my-fork-repo用于下载远程分支
    5. git checkout -b my-enhance my-fork-repo/master用于创建本地分支
    6. 更改,测试,提交您的增强功能
    7. git push my-fork-repo my-enhance用于将本地分支推送到github上的fork repo