3

我有一种情况,我必须将主题分支重新设置为主分支。没关系,这是正常的变基案例,效果很好。

复杂的是,当我试图让这个过程在一个裸露的远程存储库上同步时。

例如

o--o--o 原点/主控
       \
        o--o 来源/主题

o--o--o clone/master - 跟踪源/master
       \
        o--o 克隆/主题 - 跟踪来源/主题

现在我向我推送到 origin/master 的 clone/master 提交,到目前为止一切顺利。

o--o--o--n 原点/主控
       \
        o--o 来源/主题

o--o--o--n 克隆/主控 - 跟踪源/主控
       \
        o--o 克隆/主题 - 跟踪来源/主题

这就是我想要结束的地方:

o--o--o--n 原点/主控
          \
           o--o 来源/主题

o--o--o--n 克隆/主控 - 跟踪源/主控
          \
           o--o 克隆/主题 - 跟踪来源/主题

好像进不去,求大神帮忙

工作流程是:

  1. 克隆裸远程源
  2. 更改克隆/主控
  3. 将更改推送到 origin/master
  4. 将克隆/主题重新设置为原点或克隆主控 - 似乎没有太大区别
  5. 现在我希望原点/主题反映变基,所以我想推送,但首先我必须拉动以使克隆/主题快进,然后我最终合并,其中包含来自克隆/主题的所有原始提交以及来自的所有提交来源/主题在顶部。
4

2 回答 2

3

我会稍微修改您的工作流程以避免推送 --mirror。

  1. git clone /path/to/origin # 克隆master
  2. git checkout --track 来源/主题
  3. git结账大师
  4. 混帐添加一些新文件;git commit -m "添加了一些新文件"
  5. git推送原点/主
  6. git checkout topic #本地分支
  7. git rebase 大师
  8. git push origin master #它会在origin上更新master
  9. git push --force origin/topic :它将更新原点的主题

您需要 --force 因为 origin/topic 将更改祖先并且您已禁用快进检查。

于 2009-08-19T23:06:45.200 回答
0

显然,答案是使用 --mirror 标志进行推送。所以现在的工作流程是:

  1. git clone /path/to/origin # 克隆master
  2. git checkout --track 来源/主题
  3. git结账大师
  4. 混帐添加一些新文件;git commit -m "添加了一些新文件"
  5. git推送原点/主
  6. git checkout topic #本地分支
  7. git rebase 大师
  8. git push --mirror origin #这一步我错了,只是常规推送还不够好

另请注意,我不会与除我自己以外的任何人共享远程存储库,否则重新定位对其他开发人员不公平。

于 2009-08-20T13:27:44.807 回答