如何使git branch的上游引用为只读?

时间:2012-03-21 18:56:14

标签: git readonly

我怎么能告诉git虽然我想在某些分支上允许“git fetch”,但我不想在这些分支上允许“git push”。

换句话说,我有一些反映“当前工作”的分支,我想将它们推送到我的上游存储库。但我有其他分支(包括master),我打算在本地存储库的上下文中反映“其他工作”,我不想从这里踩到那些分支。

这是我的远程存储库,在其他情况下,我希望能够推进其所有分支。但不是来自这个特定的本地实例。

我认为这是可能的,因为git remote show origin有时告诉我,我已经为“git pull”配置了分支,但没有为“git push”配置。但是我不太了解配置文件以便手动创建这种效果,而且我也不太了解git的命令行语言,也不能在那里完成。

现在,我能做的最好的事情就是确保我的本地副本已经过时了,我希望保持原始的上游分支。 (另外,在我的git push命令行中明确指定接收分支 - 指定我只想推入对应于本地检出分支的远程实例 - 防止推入不需要的分支。但我想消除这种并发症。)

2 个答案:

答案 0 :(得分:0)

类似于Borealid在评论中所说的,在本地副本中你应该设置git config push.default upstream,然后另外确保那些你不想推动的分支没有上游分支机构。有一个git branch --set-upstream命令,但是不允许你设置一个空的上游配置来删除它,所以你必须手动编辑.git / config文件并删除merge = refs/heads/*行来自相应分支的部分。

答案 1 :(得分:0)

实际上,看起来像push.default = current会做我想要的。

这不是我要求的,但它“足够好”。它具有简单的优点。

简单是一种美德 - 使理解和使用系统变得简单。

它也非常模仿我认为我从git pull中看到的行为。