如何为非git协作者维护最新版本的git存储库

时间:2016-06-11 04:35:40

标签: git github collaboration

我有多个贡献者的私人git存储库。我希望在网络驱动器中拥有最新版本的存储库主分支,这样每个人(包括那些不使用git的人)都可以访问repo中的工具。

我已经明白,这可以通过git hooks实现,但我不确定这样做的最佳做法是什么或者是什么。

网络驱动器中的目录应该只是git存储库主服务器的克隆,如果它被意外修改,应该在有人下次提交主服务器时进行清理。

编辑:大多数贡献者和协作者都使用Windows。

2 个答案:

答案 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'相同的状态。