我有多个贡献者的私人git存储库。我希望在网络驱动器中拥有最新版本的存储库主分支,这样每个人(包括那些不使用git的人)都可以访问repo中的工具。
我已经明白,这可以通过git hooks实现,但我不确定这样做的最佳做法是什么或者是什么。
网络驱动器中的目录应该只是git存储库主服务器的克隆,如果它被意外修改,应该在有人下次提交主服务器时进行清理。
编辑:大多数贡献者和协作者都使用Windows。
答案 0 :(得分:0)
通常情况下,您设置webhook会监听推送事件并自动为您更新本地回购。
例如,请参阅this webhook(或this one):
<?php
// Use in the "Post-Receive URLs" section of your GitHub repo.
if ($_SERVER['HTTP_X_GITHUB_EVENT'] == 'push') {
shell_exec( 'cd /path/to/network/drive/git-repo/ && git reset --hard HEAD && git pull' );
}
?>hi
但是,假设您在网络驱动器上有完整的repo克隆 由于它是私有回购,我宁愿只有一个工作树(没有历史记录),这意味着我的webhook会这样做:
git --work-tree=/path/to/network/drive/git-repo checkout --force
答案 1 :(得分:0)
你需要挂钩推送事件(见here)。每当您收到来自此挂钩的请求时,您都可以
git fetch origin
git reset --hard origin/master
这将从'origin'存储库获取更新,并将您的本地'master'分支更改为与远程'master'相同的状态。