繁体   English   中英

如何管理git-svn储存库的分支?

[英]How do I manage a fork of a git-svn repository?

假设我要向LLVM添加一个新目标,并且我想将更改保留在GitHub上,直到准备好将它们提交到上游为止。 LLVM维护其SVN存储库的Git镜像,并建议在与upstream/master git pull --rebase同步时使用git pull --rebase 到目前为止的计划是,我的存储库的master分支将跟踪upstream/master ,然后mytarget分支将进行我的更改。

Git书 》这样说:

不要对存储库外部存在的提交进行基准化。

所以,如果我想git pullupstream/mastermastergit push回到origin ,我不应该使用--rebase ,然后呢? 还是应该使用git pull --rebaseupstream/master git pull --rebase同步,然后从master mytarget合并到mytarget

在这种情况下,我的总体工作流程应该是什么?

git pull --rebase将尚未推送的那些提交git pull --rebase ,因此应该是安全的。 让我们看看…

A  B  c  D
*--*--*--* <master
      |
  origin/master

您有一个未按下的提交D 如果远程主服务器上有两个新的提交,并且您运行git pull --rebase origin/master git pull这两个提交,并且在它们之上重新提交提交D

A  B  c  X  Y  D`
*--*--*--*--*--* <master
            |
      origin/master

新的提交是D' (提交从未真正编辑或移动过-git而是创建新的提交并移动分支指针)。 现在,您执行git push origin master来推送新的提交和更新,我们看到:

A  B  c  X  Y  D`
*--*--*--*--*--* <master
               |
         origin/master

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM