假设我有一个裸存储库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,我可以这样做吗?
答案 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
您可以在将其放入远程裸仓库之前在本地仓库中测试该脚本。