Git:推送到每个分支的不同位置

Git: push to different locations per branch

我想设置一个 git 存储库,我可以在其中 push/pull 我的更改 to/from 不同的位置,具体取决于我所在的分支。
这个想法是有两个分支:

我假设使用此设置我可以轻松处理同一项目的 internal/public 开发。 现在我被困在如何做到这一点上。我遵循了 this 的回答,但在我看来 远程位置只能应用于整个存储库而不是单独的分支。

如何解决这个问题?如果这不是要走的路,请给我一个最佳实践建议。

git push的长格式为:

git push remotename localbranch:remotebranch

它为您提供了选择性地将分支推送到所需远程所需的所有灵活性。

例子

  1. master 分支推送到 origin

    git push origin master
    
  2. develop 分支推送到 myfork

    git push myfork develop
    
  3. develop 分支推送到 myfork

    上名为 newbranch 的分支
    git push myfork develop:newbranch
    
  4. 带冒号的完整语法也可用于删除分支。这通过将 "nothing" 推入

    myfork 中删除 newbranch
    git push myfork :newbranch
    

我倾向于主要使用带有 git 的显式命令,而不是依赖于某些默认行为。每当一个同事卡在 git 时,他的命令历史记录中通常会有一个简单的 git pullgit push 这让我微笑(如果我心情特别糟糕,或者叹气)。

由于您还要求小费,在推动之前您可能需要四处看看:

git remote -v
git fetch remotename
git branch -a