工作流git间谍远程

时间:2015-03-13 16:33:02

标签: git git-remote

假设我有一个裸存储库A,它有分支主服务器。我创建本地存储库并添加A作为远程。我希望本地存储库永远不会推送到远程,但它可以提交本地并从远程提取。

bare repository:      o-----o------------o
                      |     |            |
                    pull   pull         pull
                      |     |            |
local repository:     o-----o-------x----o

o: commit of bare repository (some devs make).
x: commit of mine in local and not pushed.

使用git,我可以这样做吗?

2 个答案:

答案 0 :(得分:0)

是的,你可以这样做。它甚至是git的基本功能:你改变你的本地副本,当你想要push时,你首先必须从遥控器pull解决任何冲突(git可以看到,即改变为同样的路线。)

请注意,如果您从未push对遥控器进行更改,则您的版本会有所不同,并且不兼容性会增加(例如您创建一个函数,然后是具有相同名称和范围的函数)在遥控器上创建,git将无法检测到它。

答案 1 :(得分:0)

您可以使用git hook机制执行服务器端ACL,如下所述:

http://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy

您将脚本添加到远程

上裸存储的git hooks目录中

.git/hooks/update

您可以在将其放入远程裸仓库之前在本地仓库中测试该脚本。