将提交提交到分叉存储库的分支

时间:2014-09-19 21:41:17

标签: git github version-control git-pull pull-request

更新分叉存储库时遇到奇怪的错误。我已经在forked repo中创建了一个dev-branch(用于我的开发工作)。

  1. 我克隆了一个分叉的回购

     git clone https://github.com/twbs/bootstrap
    
  2. 检查当前分支

          git branch
    
          *master
          dev-branch
    
  3. 更改为dev-branch

    git checkout dev-branch
    
  4. 进行更改并将其提交给dev-branch

     git commit
    
  5. 添加远程网址

     git remote add parent git@github.com:twbs/bootstrap
    
  6. 当我现在进行git推送时,我收到错误     提示:更新被拒绝,因为您当前分支的提示落后 提示:它的远程对手

  7. 所以,我做了

        git fetch parent
        git merge parent/master
       A new commit screen is opened with commit message "Merge remote-tracking branch 'bootstrap/master' into dev-branch"
    
  8. 当我执行git push

  9. 时,我仍然遇到同样的错误
  10. 现在,我做了

        git pull
        A new commit screen is opened with commit message "Merge branch 'dev-branch' of https://github.com/username/bootsrap into dev-branch
    
    1. 现在,git push工作了。
  11. 我不知道发生了什么。我在某个地方犯了错误吗?有人可以向我指出更新和推送分叉存储库的不同分支的正确步骤吗?

1 个答案:

答案 0 :(得分:1)

你使用的是什么版本的git?较早版本的Git用于默认“尝试将所有本地分支推送到远程”,这是您尝试做的。

较新版本的Git默认只尝试将当前签出的分支推送到上游相同名称的分支(我也不喜欢)。我个人推荐git config --global push.default tracking(或更新版本的上游),它会尝试将您当前的分支推送到上游。

在你的情况下,你有两个分支,它试图推动它们。两人都被拒绝,因为两人都落伍了。

所以你真的没有错,尽管如果你更喜欢线性历史,你可能想要考虑改变而不是合并。